2011-10-10 76 views
0

你好我有多重動態edittextbox.i想存儲我如何存儲它的所有edittextbox值? 我應該在所有的編輯框,應該是我要存儲在按鈕的單擊事件編寫 我的代碼如下如何在android中存儲多個動態edittext值

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); 
} 
+0

採取陣在你的代碼... 並使用排列U可以存儲和獲取值返回之前.... 字符串ARRAY_NAME [我] –

+0

您是否想稍後獲取editText1值? 「商店」是什麼意思? –

+0

@MustafaGüven我想獲得editText值存儲點擊事件 – Piyush

回答

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

} 
2

直接回答你的問題是:

  • 記得你textviews當你創建它們(它們添加到ArrayList例如)

  • 的的onPause()方法您的活動是保留您想要的任何信息的地方(android框架可以在暫停時隨時完成您的活動)。

  • 在重寫的onPause()方法中,遍歷您的ArrayList<TextView>,檢索每個TextView內容並將它們存儲以供以後使用。 (如果你有一個固定數量的TextViews,你可以考慮使用SharedPreferences,但看看本文的其餘部分,看看是否有更好的東西適合你的需求。

  • 然後你可以使用onCreate()或onResume )方法來重新裝載您TextViews之前,您的應用程序顯示出來。

間接,可能更好,答案將是通過使用數據管理類,將處理儲蓄恢復和修改數據從UI數據分開和自定義Adapter這將負責填充TextViews。這樣你可以很容易地改變後來解決不同的小部件。

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(); 
       } 
      } 
     } 
相關問題