我的应用程序有点臃肿,我想通过将我的一些变量更改为数组并使用一些 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/