2013-08-23 79 views
0

如果我有,在我的程序中說20個EditText字段...並且在某個時候我想訪問其中的2個...然後接下來的2 ...然後接下來的2 ...和等等....我可以使用ExitTexts數組來做到這一點? 如果是,那麼你可以請給我一個小例子...Android中的多個EditText

分別訪問每個EditText可能是一個單調乏味的工作...我試圖在一個數組中實現它...但每次它給我一個空指針異常...所有我的ID都正確提供...加上代碼工作時,我分別提供每個單獨的EditText。

下面是代碼::

EditText e11,e12,e13,e21,e22,e23,e31,e32,e33,e41,e42,e43,e51,e52,e53,e61,e62,e63,e71,e72,e73,e81,e82,e83,e91,e92,e93,e101,e102,e103; 

EditText arr[]={e11,e12,e13,e21,e22,e23,e31,e32,e33,e41,e42,e43,e51,e52,e53,e61,e62,e63,e71,e72,e73,e81,e82,e83,e91,e92,e93,e101,e102,e103}; 

String ch1="",ch2="',ch3=""; 
for(c=0 to 9) 
{ 
    ch1=arr[(4*c)].getText().toString(); 
    ch2=arr[(4*c)+1].getText().toString(); 
    ch3=arr[(4*c)+2].getText().toString(); 
} 

for循環是給我一個空指針異常......即使我設置EditTexts值硬編碼。

+2

數組是走的路,但沒有代碼和堆棧跟蹤,誰能提供幫助? – Simon

+0

顯示ListView的適配器模式可能是要走的路。 –

回答

0

您可以使用droidQuery來選擇您所有的EditText s,並使用each方法遍歷所有這些方法。您還可以添加一個TextWatcherclickListener,或使用一些簡單的命令完成很多其他事情集成。例如,選擇所有EditText S,簡單地使用:

$ droidQuery = $.with(this).selectByType("android.widget.EditText"); 

EditText每個現在可以使用view(int)方法進行檢索。所以,如果你想在同一時間拿到兩,你可以做這樣的事情:

EditText[] ets = new EditText[]{(EditText) droidQuery.view(0), (EditText) droidQuery.view(1)};//note: you can get the size of the current droidQuery selection with the size() method. 
//TODO do something with eta. 

的最佳方式,但是,讓每一個如下:

$.with(this).selectByType("android.widget.EditText").each(new Function() { 
    @Override 
    public void invoke($ droidQuery, Object... params) { 
     EditText e = (EditText) droidQuery.view(0); 
     //TODO manipulate e 
    } 
}); 

您可以添加在所有這些聽衆是這樣的:

$.with(this).selectByType("android.widget.EditText").click(new Function() { 
    @Override 
    public void invoke($ droidQuery, Object... params) { 
     EditText e = (EditText) droidQuery.view(0); 
     //TODO handle e clicked 
    } 
}); 

要添加TextWatcher,你可以這樣做:

$.with(this).selectByType("android.widget.EditText").change(new Function() { 
    @Override 
    public void invoke($ droidQuery, Object... params) { 
     EditText e = (EditText) droidQuery.view(0); 
     //TODO handle e after text has changed. 
    } 
}); 

您可以使用此庫進行更多操作,因此請務必閱讀docs