我想为Android创建一个EditText数组,但似乎找到id是一项非常具有挑战性的任务。有人可以伸出手来吗?
我的数组代码:
EdiTText[] mEditText = new EditText[20];
for(int i =0;i<mEditText.length;i++){
mEditText[i] = (EditText) findViewById(i);
}
答案 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对象。