看这张图片:
我正在android中设计一个数独,已经完成了这样的布局,所以81 Editext就在那里。我想获取 Editext 中的所有值,因此很难在 Activity 中声明和管理 81 个 View 。您能建议我一种有效解决我的问题的方法吗?
最佳答案
动态创建编辑文本。
在每次迭代中,您都会重写 ed
变量,因此当循环完成时,ed
仅指向您创建的最后一个 EditText 实例。
您应该存储对所有 EditText 的所有引用:
EditText ed;
List<EditText> allEds = new ArrayList<EditText>();
for (int i = 0; i < count; i++) {
ed = new EditText(Activity2.this);
allEds.add(ed);
ed.setBackgroundResource(R.color.blackOpacity);
ed.setId(id);
ed.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
linear.addView(ed);
}
现在 allEds
列表保存对所有 EditText 的引用,因此您可以迭代它并获取所有数据。
获取数据
String[] strings = new String[](allEds.size());
for(int i=0; i < allEds.size(); i++){
string[i] = allEds.get(i).getText().toString();
}
注意:
这不是结果,您的设计可能会有一些变化。但请按照以下步骤获得准确的结果。我认为您必须使用两个 for 循环
才能在 GridView 中获取编辑文本。
关于java - 如何解决布局中更多数字的 Editext 问题并从中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393005/