2012-04-28 15 views
1

EditTextビューを作成しました動的に、テキストを1つのリストまたは配列に入れたいのですが、どうすればいいですか?EditTextを動的に作成し、それぞれのテキストをEditTextから取得する

+1

チェックこのアウト:http://stackoverflow.com/questions/7200108/android-gettext-from-edittext-fieldそれとも缶EditTextの[documentation](http://developer.android.com/reference/android/widget/EditText.html)を読んでください。 – Rainulf

答えて

3

あなたはdynalicallyこのようにそれらを作成している間、あなたはあなたのedittextsのための参照を取得する必要があります。..

EditText ed; 
    List<EditText> allEds = new ArrayList<EditText>(); 

for (int i = 0; i < count; i++) { 
    //count is number of edittext fields 
ed = new EditText(MyActivity.this); 
allEds.add(ed); 

linear.addView(ed); 
} 

今allEdsはあなたのedittextsへの参照を持っています...あなたは、このようなテキストを取得することができます。 。

String [] items=new String[allEds.size()] 
for(int i=0; i < allEds.size(); i++){ 
items[i]=allEds.get(i).getText().toString(); 
} 
2

あなたはそれらのテキストのを格納するための一つ「動的に作成EditText格納するための1」は2 Listを作成することができます。

for-eachループを使用してEditTextリストを繰り返して、それぞれEditTextのテキストを取得し、テキストのリストに追加します。

List<EditText> myList = new ArrayList<EditText>(); 
List<String> etText = new ArrayList<String>(); 
EditText myEt1 = new EditText(this); 
EditText myEt2 = new EditText(this); 
EditText myEt3 = new EditText(this); 
//so on... 

myList.add(myEt1); 
myList.add(myEt2); 
myList.add(myEt3); 

for(EditText et : myList){ 
String settext = et.getText().toString(); 
etText.add(settext); 
} 
+0

これはまさに私が必要としていることですthanx .. – ashokk

1

あなたの問題は、これらのビューへのアクセスの場合:

// assume ll is your container LinearLayout and your EditTexts inserted in it 
LinearLayout ll; 
int nViews = ll.getChildCount(); 

for (int i = 0; i < nViews; i++) { 
    View child = ll.getChildAt(i); 
    if (child instanceof EditText) { 
     EditText edt= (EditText) child; 
     //... 
    } 
} 
+0

それは私を助けました – ashokk