请看这张图:

我正在设计一个android的数独,已经做了这样的布局,所以81 Editext在那里。我想在Editext中获得所有的值,所以很难声明和管理活动中的81个视图。你能给我推荐一种有效处理我的问题的方法吗?
发布于 2013-01-18 13:48:23
我建议你使用像这样的Edittext数组
EditText text1,text2,text3,text4,text5,text6,text7,text8,text9, text21,text22,text23,text24....text 99;
EditText[] fields={text1,text2,text3,text4,text5,text6,text7,text8,text9, text21,text22,text23,text24....text 99};
//Give your edittext ids in ids array like this
int ids[]={R.id.text1,R.id.text2,R.id.text3.....R.id,text99};
int values[9][9]={};
for(int i=0;i<fiends.length;i++)
{
fields[i]=(EditText)findViewById(ids[i]);
}要使用相同的方法获取值,请获取一个数组,并将这些值保存在数组中,如下所示。使用for循环,从文本字段中获取值,并将其保存在2d数组中,就像我在值数组中声明的那样。我想你知道如何编写其他你真正想知道的东西,请评论,我会把rest.thank发布给你。我希望这能对你有所帮助。
发布于 2013-01-18 13:43:43
动态创建edittext。
在每次迭代中,您都会重写ed变量,因此当循环完成时,ed只会指向您创建的最后一个EditText实例。
您应该存储对所有EditTexts的所有引用:
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列表包含对所有EditTexts的引用,因此您可以迭代它并获取所有数据。
获取数据
String[] strings = new String[](allEds.size());
for(int i=0; i < allEds.size(); i++){
string[i] = allEds.get(i).getText().toString();
}笔记
这不是你的设计结果,可能会有一些changes.but,遵循这些步骤可以得到准确的结果。我认为您必须使用two for loops才能在网格视图中获得您的编辑文本。
发布于 2013-01-18 13:48:29
您可以这样尝试:
新的RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,m_arr_edit= =
ArrayList();RelativeLayout p_rl_layout=new RelativeLayout(m_context);RelativeLayout.LayoutParams layoutParams =新的静态RelativeLayout.LayoutParams.WRAP_CONTENT);LinearLayout m_ll_timelayout =新的LinearLayout(m_context);m_ll_timelayout.setLayoutParams(新的静态LayoutParams.WRAP_CONTENT));for (int i= 0;i<;i++) { EditText m_edit =新EditText(m_context);m_edit.setLayoutParams(新LinearLayout.LayoutParams(90,LayoutParams.WRAP_CONTENT));m_edit.setText(“设置文本”);m_edit.setId(i);m_arr_edit.add(m_btn);m_ll_timelayout.addView(m_btn);} layoutParams.addRule(RelativeLayout.BELOW);p_rl_layout.addView(m_ll_timelayout,layoutParams);
我希望它能对你有所帮助。
https://stackoverflow.com/questions/14393005
复制相似问题