このリンク (http://stackoverflow.com/questions/6603868/android-onclicklistener-and-table-layout) を見ましたが、質問者にとってはうまくいくようです。とは言え、これが私の状況です。
4 列のデータで動的に埋められた TableLayout があります。上記のリンクの例のようなボタンがないため、行全体がクリック可能である必要があります。
クリックされた行は、最初の列 (列 0) のデータを渡す必要があります。これは単なる文字列です。新しい行を作成するために呼び出される関数を次に示します。
private void addLotTableRow(CharSequence [] row, int count) {
final TableLayout table = (TableLayout) findViewById(R.id.lotsTableList);
final TableRow tr = (TableRow) getLayoutInflater().inflate(R.layout.lotsrow, null);
TextView tv;
// Fill Cells
tv = (TextView) tr.findViewById(R.id.lotCell1);//Cell 1: Lot Number
tv.setText(row[0]);
tv = (TextView) tr.findViewById(R.id.lotCell2);//Cell 2: Sample
tv.setText(row[1]);
tv = (TextView) tr.findViewById(R.id.lotCell3);//Cell 3: Inspected
tv.setText(row[3]);
tv = (TextView) tr.findViewById(R.id.lotCell4);//Cell 4: Total
tv.setText(row[2]);
table.addView(tr);
}
だから私はもともと tr.setOnClickListener(new View.OnclickListener() {blahblah}); を作ろうとしました。この関数では、 table.addView(tr) 行の直前。「何とか」はもちろん onClick(View v) 関数でした。どの行をクリックしても、最初は最後の行のデータしか取得できませんでした。今、私は上記のリンクのようにしようとしていて、すべてのテーブル行が作成された後、より高い関数から onclicks を生成しようとしています。おそらくもっと多くの情報を提供できると思いますが、これでひとまず理解できると思います! 助けてくれてありがとう!