首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在布局中解决更多数字的Editext,并从中获取值?

如何在布局中解决更多数字的Editext,并从中获取值?
EN

Stack Overflow用户
提问于 2013-01-18 13:36:14
回答 3查看 85关注 0票数 2

请看这张图:

我正在设计一个android的数独,已经做了这样的布局,所以81 Editext在那里。我想在Editext中获得所有的值,所以很难声明和管理活动中的81个视图。你能给我推荐一种有效处理我的问题的方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-18 13:48:23

我建议你使用像这样的Edittext数组

代码语言:javascript
复制
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发布给你。我希望这能对你有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-01-18 13:43:43

动态创建edittext。

在每次迭代中,您都会重写ed变量,因此当循环完成时,ed只会指向您创建的最后一个EditText实例。

您应该存储对所有EditTexts的所有引用:

代码语言:javascript
复制
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的引用,因此您可以迭代它并获取所有数据。

获取数据

代码语言:javascript
复制
 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才能在网格视图中获得您的编辑文本。

票数 2
EN

Stack Overflow用户

发布于 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);

我希望它能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14393005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档