クラス全体のスコープを持つ変数を定義する必要があります。
public class Example extends Activity {
EditText txt1;
EditText txt2;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
txt1 = new EditText(this);
txt2 = new EditText(this);
...
これで、onClick 関数が と を参照できるようにtxt1
なりtxt2
ます。
あるいは
txt1
多くの LinearLayoutを1 つの LinearLayoutで作成しているように見えるのでtxt2
、Button に EditTexts への参照を渡すことができます。
do {
...
// EditText[] array = { txt1, txt2 };
// is the short version of
EditText[] array = new EditText[2];
array[0] = txt1;
array[1] = txt2;
showtxt.setTag(array);
showtxt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText[] array = (EditText[]) v.getTag();
String aaa = array[0].getText().toString();
String bbb = array[1].getText().toString();
Log.v("Example", aaa + " " + bbb);
}
});
} while(some condition)
これは理想的ではないかもしれませんが、これ以上のコンテキストがなければ、最終的な目標を推測することはできません. それが役立つことを願っています!
最後の提案
Button と 2 つの EditTexts を行と呼ぶと、各行を独自の ViewGroup または View に格納できます。各行に背景色を付けたいとします。
View row = new View(this); // or this could be another LinearLayout
row.setBackgroundColor(0x0000ff);
// Create and add the Button and EditTexts to row, as in row.addView(showtxt), etc
...
linearLayout.addView(row);
showtxt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
View row = v.getParent()
String aaa = ((EditText) row.getChildAt(1)).getText().toString();
String bbb = ((EditText) row.getChildAt(2)).getText().toString();
Log.v("Example", aaa + " " + bbb);
}
});