如何在android中存储多个动态edittext值

时间:2011-10-10 06:07:42

标签: android

你好我有multilpe动态edittextbox.i想要存储我如何存储其所有edittextbox值的值? 我应该在所有编辑框中写的应该是我希望存储在按钮点击事件上 我的代码在下面

for(i = 0 ;i < 6; i++) {
   TableRow tr = new TableRow(this);
   TableRow tr1 = new TableRow(this);

   TextView tv1 = new TextView(this);
   editText1 = new EditText(this);      
   editText1.setWidth(300);
   tr.addView(tv1);
   tbl.addView(tr);

   tr1.addView(editText1);
   tbl.addView(tr1);
}

3 个答案:

答案 0 :(得分:2)

这是代码。

EditText[] editText1 = new EditText[6];

for(i = 0 ;i < 6; i++) {
   TableRow tr = new TableRow(this);
   TableRow tr1 = new TableRow(this);

   TextView tv1 = new TextView(this);
   editText1[i] = new EditText(this);      
   editText1[i].setWidth(300);
   tr.addView(tv1);
   tbl.addView(tr);

   tr1.addView(editText1[i]);
   tbl.addView(tr1);
}

public void onClick(View v)
{
    for(int i=0;i<6;i++)
    {
        Log.i("----value of EditText:"+i,"."+editText1[i].getText().toString());
    }

}

答案 1 :(得分:2)

您问题的直接答案是:

  • 在您创建文字视图时记住它们(例如,将其添加到ArrayList

  • 你的活动的onPause()方法是保留你想要的任何信息的地方(android框架可以在你的活动暂停时随时完成)。

  • 在覆盖的onPause()方法中,循环浏览ArrayList<TextView>,检索每个TextView内容并将其存储起来供以后使用。 (如果您有固定数量的TextView,可以考虑使用SharedPreferences,但请查看本文的其余部分,看看是否更适合您的需求。

  • 然后,您可以使用onCreate()或onResume()方法在应用程序显示之前重新填充TextView。

间接的,可能更好的答案是通过使用可以处理保存还原和修改数据的数据管理类以及负责填充TextViews的自定义Adapter来将数据与UI分离。通过这种方式,您可以轻松更改后者以处理不同的小部件。

答案 2 :(得分:0)

我在不使用编辑器的情况下编写了这些代码,在使用

之前进行了检查
String sValues="";
        for (int i = 0; i < tbl.getChildCount(); i++) {
            TableRow row =  (TableRow)tbl.getChildAt(i);
            for (int j = 0; j < row.getChildCount(); j++) {
                if(row.getChildAt(j) instanceof EditText){
                    EditText editText1 = (EditText)row.getChildAt(j);
                    sValues += editText1.getText().toString();
                }
            }
        }