2011-11-26 36 views
0

我使用getIdentifier()以整數形式動態獲取了id。我希望能夠使用整數ID獲取EditText字段所保存的值。使用標識符獲取Android EditText字段的值

我應該添加我寫的這個方法不在一個Activity內,它是在一個單獨的非Activity類中。

+0

「我把在替代將R ......」 的意思? – user370305

+0

我把int id作爲findViewByID()的參數,而不是例如R.id.name,它不能識別它。 – Neeta

回答

1

您可以如果您正在使用一個單獨的類使用

String value = ((EditText) findViewById(R.id.edittext)).getText(); 

,你應該傳遞給EditText上的引用到這個類。首先獲得參考

setContentView(R.layout.yourlayout); 
EditText editText = (EditText) findViewById(getResources() 
     .getIdentifier("edittext", "id", "com.yourpackage")); 

然後將它傳遞給你的其他類,並在其上使用getText那裏。確保您只在「活動」處於活動狀態時嘗試訪問EditText。

沒有爲getIdentifier方法的警告,因此,如果你沒有其他選擇,你應該只使用它:

注:使用此功能被勸阻。通過標識符而不是按名稱檢索資源要高效得多。

+0

我得到了使用getIdentifier()的id。我把它放在R.id.edittext中,它不會讓我使用findViewByID()方法。 – Neeta

+0

我已經編輯了我的答案,提供了更多的建議 – Craigy

0
String value = ((EditText) findViewById(R.id.edittext)).getText().toString; 

toString()是必需的,因爲getText()返回編輯

+0

我使用getIdentifier()獲得了id。我把它放在R.id.edittext中,它不會讓我使用findViewByID()方法。 – Neeta

0

這是你問什麼?

String ed1 = ((EditText) findViewById(R.id.value)).getText().toString(); 
+0

我使用getIdentifier()獲得了id。我把它放入而不是R.id.value,它不會讓我使用findViewByID()方法。 – Neeta

+0

我不認爲你可以通過getIdentifier獲得佈局中的id?它用於獲取資源文件夾的標識,如(R.layout.xxx,R.drawable.xxx)。 – freshDroid

0

使用此代碼:

EditText et=(EditText) findViewById(your_editText_id); 
CharSequence text = et.getText(); 
String textS=text.toString(); 
+0

我使用getIdentifier()獲得了id。我把它放在R而不是它,它不會讓我使用findViewByID()方法。 – Neeta

+0

嘗試context.findViewById(your_editText_id); 假設你有一些指向你的應用程序/活動上下文的指針。 – GalDude33