我看到了这个链接(http://stackoverflow.com/questions/6603868/android-onclicklistener-and-table-layout),它似乎对提问的人有用。话虽如此,这就是我的情况。
我有一个 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。我可能可以提供更多信息,但我认为人们现在可以从中得到这个想法!谢谢你的帮助!