2011-01-31 61 views
7

我有一個包含許多EditText的表單,當我按下某個按鈕時,我需要檢索所有這些控件並將它們放入HashMap中,這樣鍵就是名稱(key1 int以下代碼)如何檢索EditText的xml編號

<EditText android:id="@+id/key1" 
     style="@style/keys" /> 

和值,無論用戶輸入什麼文本。

我的問題是,我如何檢索Hashmap的鍵的EditText的名稱? getId()返回一個數字。

感謝

+1

你打算如何使用該名稱?像`findViewById()`這樣的方法接受ID`int`作爲參數。 – 2011-01-31 14:16:13

+0

誰的findViewById?我嘗試了EditText,ScrollView和Layout的形式,並且它們都返回對EditText的引用(例如[email protected])。 – xain 2011-01-31 15:37:16

回答

2

我終於解決了它使用android:標籤和getTag()

3

的Android生成用於R.java該視圖,每當你建立你的項目的句柄。例如,一旦你建立起來,你可以通過調用R.id.key1來訪問你的EditText。您不必將ID存儲在任何地方,因爲您可以隨時在代碼中直接訪問該ID。有了這個ID,你可以撥打findViewById()作爲dave.c提到從你的XML中獲得你需要的任何視圖。

+0

感謝您的回覆。如果我需要將pair key/value發送到Web服務,該怎麼辦?在這種情況下,我需要密鑰始終相同,並且最好是「可讀」的密鑰,就像它在Web表單中完成的一樣。 – xain 2011-01-31 14:24:14

0

實際上,getId()是組件ID的整數值,它與R生成的類中描述的相同。

你需要寫實際的名字嗎?如果你只需要一個引用,那麼int值就足夠了。