-3

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

我的数组代码:

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

3 回答 3

0

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

findViewById 所需的资源 ID 不会像您的代码片段所暗示的那样从零开始,该代码片段使用循环索引作为 id。

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

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

于 2013-04-15T14:08:45.667 回答
0

您不能将 id 设置为在运行时查看。在此处阅读有关 android id的更多信息。只需使用构造函数来初始化EditText

mEditText[i] = new EditText(this);
于 2013-04-15T13:58:23.347 回答
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),那么以编程方式创建它们很酷,但您绝对应该阅读如何正确地做到这一点。

于 2013-04-15T14:00:52.420 回答