看这张图片:
我正在android中设计一个数独,已经完成了这样的布局,所以81 Editext就在那里。我想获取 Editext 中的所有值,因此很难在活动中声明和管理 81 个视图。你能建议我一种对处理我的问题有效的方法吗?
看这张图片:
我正在android中设计一个数独,已经完成了这样的布局,所以81 Editext就在那里。我想获取 Editext 中的所有值,因此很难在活动中声明和管理 81 个视图。你能建议我一种对处理我的问题有效的方法吗?
动态创建编辑文本。
在每次迭代中,您都在重写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();
}
注意:
这不是您的设计可能会有一些变化的结果。但是请按照这些程序获得准确的结果。我认为您必须使用two for loops
在网格视图中获取您的编辑文本。
我建议你像这样使用 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 循环并从文本字段中获取值并将其保存在二维数组中,正如我在值数组中声明的那样。我想您知道如何编写您真正想知道的其余内容,请发表评论,其余的我会发布。谢谢您..我希望这会对您有所帮助。
你可以试试这种方式:
public static ArrayList<EditText> m_arr_edit= = new ArrayList<EditText>(); RelativeLayout p_rl_layout=new RelativeLayout(m_context); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); LinearLayout m_ll_timelayout = new LinearLayout(m_context); m_ll_timelayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); for (int i = 0; i < p_intervals; i++) { EditText m_edit = new EditText(m_context); m_edit.setLayoutParams(new LinearLayout.LayoutParams(90, LayoutParams.WRAP_CONTENT)); m_edit.setText("Set Text"); 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);
我希望它会帮助你。