如何解决Editext在更多的数字在布局和获取值自那?(How To Solve Editext i

2019-08-07 06:35发布

看到这样的画面:

我设计android的一个数独,已经完成了布局这样的,所以81 Editext是存在的。 我想在Editext所有的值,所以其难度声明和奶源的活动81次点击。 你可以建议我这是有效处理我的问题的方法?

Answer 1:

我建议你使用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]);
}

为了得到值用同样的方法取数组和保存阵列这样的值。 使用循环,并从文本框的值,并将其保存在二维数组中,我的价值观阵列宣布。 我想你知道怎么的,你真的想知道请评论的东西剩下的代码,我会发布的rest.thankü。我希望这会帮助你。



Answer 2:

动态地创建edittexts。

在每次迭代你重写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 ,让您的edittexts在GridView。



Answer 3:

你可以尝试一下这种方式:

 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); 

我希望这会帮助你。



文章来源: How To Solve Editext in More Numbers in a Layout And Get Values From That?