1

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

4

3 に答える 3

3

このように動的に編集テキストを作成しているときに、編集テキストの参照を取得する必要があります。

    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に編集テキストへの参照が含まれるようになります。このようなテキストを取得できます。

 String [] items=new String[allEds.size()]
 for(int i=0; i < allEds.size(); i++){
 items[i]=allEds.get(i).getText().toString();
 }
于 2012-04-28T07:52:57.740 に答える
2

List動的に作成されたEditTextものを保存するためのものと、テキストを保存するためのものの2つを作成できます。

次に、ループをEditText使用してリストを反復処理し、それぞれのテキストを取得して、テキストのリストに追加します。for-eachEditText

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);
}
于 2012-04-28T08:14:24.133 に答える
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;
        //...
    }
}
于 2012-04-28T08:22:21.383 に答える