android - 如何引用在 main.xml 中创建的 EditText 数组

标签 android eclipse loops android-edittext

我的应用程序有点臃肿,我想通过将我的一些变量更改为数组并使用一些 for 循环来处理我的变量来“压缩”一些代码。 我的第一个目标是初始化我的 EditText 框

我的原始代码(工作正常)包括:

EditText miBox1, spBox1 ;   
EditText miBox2, spBox2 ;   

...

miBox1 = (EditText)this.findViewById(R.id.miBox1);
spBox1 = (EditText)this.findViewById(R.id.spBox1);
miBox2 = (EditText)this.findViewById(R.id.miBox2);
spBox2 = (EditText)this.findViewById(R.id.spBox2);

我实际上有 20 个 mi 框和 20 个 sp 框要设置 我正在尝试创建一个数组,并循环遍历它们

在我的 main.xml 中,我将我的 EditText 框重命名为 miBox[1] spBox[1] 等

我在我的 Activity 中声明:

EditText[] miBox = new EditText[20] ;    
EditText[] spBox = new EditText[20] ;  

并将其放入for循环中

miBox[i] = (EditText)this.findViewById(R.id.miBox[i]);
spBox[i] = (EditText)this.findViewById(R.id.spBox[i]);

但 Eclipse 无法解析 R.id.miBox[i]

如何在我的 xml 中正确创建一个 EditText 数组,以便 它被识别了?

谢谢 京东

最佳答案

int resID = getResources().getIdentifier("miBox" + i,
    "id", getPackageName());

i 是你的索引

EditText editText = (EditText)findViewById(resId);

如果你想把它放在一个数组中,只需这样做:

 miBox[i] = (EditText)findViewById(resId);

关于android - 如何引用在 main.xml 中创建的 EditText 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830058/

相关文章:

android - 为什么 Android studio 会遇到大写包名的问题?

java - Gradle 实现未将 gradle 模块导入 gradle 项目

perl - 如何设置 Eclipse 以在不进行运行时检查的情况下编辑 Perl?

powershell - 检查字符串是否在字符串列表中

java - 在 android 中使用 Run 方法的最佳方式是什么?

java - Android:尝试从其他类访问 TextView 时出现 NullPointerException

javascript - 将数据从应用程序组件[文本框]传递到网站组件[文本框]

java - 在 Java 中使用 HtmlUnit 得到错误和异常

linux - 如何使用循环 ssh 多个服务器,但如果一个用户失败,则与两个用户尝试另一个

python - 如何将每个 x 个元素拆分一个列表并将这些 x 个元素添加到一个新列表中?