-1

ループを使用していくつかの EditTexts を追加しました。

textFieldsLayout = (LinearLayout) findViewById(R.id.LinearLayout2);

    for(int i=1; i <= 8; i++){

        final EditText ed = new EditText(this);

        ed.setText("" + i);

        ed.setInputType(2);

        ed.setLayoutParams(lparams);

        textFieldsLayout.addView(ed);
    }   
}

この後、ユーザーが EditText フィールドに追加するテキストを取得したいのですが、これを行う方法に行き詰まっています。これらの EditText フィールドごとに ID を取得するにはどうすればよいですか?

ありがとう、オリ

4

2 に答える 2

1

それらを作成するときにコレクションに追加するだけで、インデックスやキー、ループスルーなどで簡単に参照できます。

EditText[] etCollection = new EditText[8];

..........

    textFieldsLayout = (LinearLayout) findViewById(R.id.LinearLayout2);
    for(int i=1; i <= 8; i++){
        final EditText ed = new EditText(this);
        ed.setText("" + i);
        ed.setInputType(2);
        ed.setLayoutParams(lparams);
        textFieldsLayout.addView(ed);
        etCollection[i] = ed; <------ adding them to the collection
    }   
}
于 2013-01-02T21:32:37.403 に答える
0

ed.setId( id );作成するものごとに行うid必要があり、見つけたいものごとに一意にする必要があります。あなたが1つを見つけるために行くとき

EditText ed = (EditText)findViewById( id );

ID をどこかに記録しておく必要があります。

または、作成した EditText のリストを保持し、リストを実行してそれぞれのテキストを取得することもできます。

于 2013-01-02T21:06:52.930 に答える