在为EditText使用数组时查找Id

时间:2013-04-15 13:53:48

标签: android

我想为Android创建一个EditText数组,但似乎找到id是一项非常具有挑战性的任务。有人可以伸出手来吗?

我的数组代码:

           EdiTText[]    mEditText = new EditText[20];
         for(int i =0;i<mEditText.length;i++){
            mEditText[i] = (EditText) findViewById(i);
             }

3 个答案:

答案 0 :(得分:0)

您无法在运行时设置id以进行查看。阅读有关android id here的更多信息。 只需使用构造函数初始化EditText

mEditText[i] = new EditText(this);

答案 1 :(得分:0)

有两种方法可以处理UI元素,例如EditText

一个。在你的布局xml中实现它们,如下所示:

<EditText android:id="@+id/myedittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

这里EditText的id为“myedittext”。然后,您可以使用

从代码中引用EditText来完成这些操作
EditText et = (EditText)findViewById(R.id.myedittext);

湾以编程方式创建它们

EditText et = new EditText(context)

使用此方法,您还必须手动将此EditText添加到UI /布局中。

你以不起作用的方式混合了这两种方法。

如果你事先不知道你需要多少个UI元素(在你的情况下是EditText),那么以编程方式创建它们很酷,但你一定要仔细阅读如何正确地做到这一点。

答案 2 :(得分:0)

我不会问你为什么要这样做。然而...

findViewById所需的资源ID不会从零开始,因为您的代码片段使用了id的循环索引。

如果EditText是用XML创建的,那么您需要R.id.xxxx格式的资源ID。您可以创建ID的int []并将相应的id传递给findViewById。

如果您在代码中创建EditText,那么您将没有ID,因此必须在创建时存储EditText对象。