私の要件は、複数の行を持つテーブルがあり、単一の行を選択するとその内容が画面に表示されることです。すべての行に onClick() を書くことで達成可能であることがわかりましたが、複数の行に複数の onClick() を書くことは現実的ではありません。複数の onClick() を書かずにこれを達成する方法はありますか。
これはテーブルの XML です。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativelayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ScrollView android:id="@+id/ScrollView01"
android:layout_height="100dp" android:layout_width="wrap_content">
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="wrap_content"
android:background="#000000"
android:stretchColumns="*"
android:layout_height="100dp"
android:scrollbars="horizontal"
>
<TableRow
android:layout_margin="0.2dip"
android:background="#000000" >
<TextView
android:layout_margin="0.2dip"
android:background="#FFFFFF"
android:text="@string/code" />
<TextView
android:layout_margin="0.2dip"
android:background="#FFFFFF"
android:text="@string/name" />
</TableRow>
<TableRow
android:layout_margin="0.2dip"
android:background="#000000"
android:focusable="true"
android:onClick="showData" >
<TextView
android:id="@+id/code1"
android:layout_margin="0.2dip"
android:background="#FFFFFF"
android:text="@string/code1" />
<TextView
android:id="@+id/code2"
android:layout_margin="0.2dip"
android:background="#FFFFFF"
android:text="@string/name1" />
</TableRow>
2 行目に onClick と書きました。
これは、アクティビティ クラスの onClick() です。
public void showData(View view){
text = new EditText(this);
//text = (EditText) findViewById(R.id.displayData);
TextView tx1 = (TextView) findViewById(R.id.code1);
TextView tx2 = (TextView) findViewById(R.id.code2);
TextView tx3 = (TextView) findViewById(R.id.displayData);
tx3 = new TextView(this);
String str = tx1.getText().toString();
String str1 = tx2.getText().toString();
tx3.setText("CODE : "+str+" "+"NAME :"+str1);
//text.setText("CODE : "+str+" "+"NAME :"+str1);
//text.setText("NAME :"+str1);
setContentView(tx3);
}