0

如果我有,比如说我的程序中有 20 个 EditText 字段......并且一次我想访问其中的 2 个......然后是下一个 2......然后是下一个 2......等等......可以我使用一组 ExitTexts 来做到这一点?如果是的话,你能不能给我一个小例子......

分别访问每个 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 循环给了我一个 NULL POINTER EXCEPTION ......即使我为 EditTexts 硬编码设置了值。

4

1 回答 1

0

您可以使用droidQuery来选择您的所有EditTexts,并使用该each方法遍历所有这些。您还可以添加TextWatcheror ,或使用一些简单的命令一起执行clickListener许多其他操作。例如,要选择所有s,只需使用:EditText

$ 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.
    }
});

你可以用这个库做更多的事情,所以一定要阅读文档

于 2013-08-23T19:54:00.607 回答