Все еще ищите ответ для этого, чтобы увидеть, есть ли лучший способ, но когда вы создаете строку таблицы, вы можете установить тег и затем извлечь его
У меня это работает с onClickListener:
private void AddRow(String rowNo)
{
final TableLayout table = (TableLayout) findViewById(R.id.my_table);
final TableRow tr = (TableRow) getLayoutInflater().inflate(R.layout.table_row_item, null);
tr.setTag(rowNo);
TextView tv;
tv = (TextView) tr.findViewById(R.id.rowNo);
tv.setText(rowNo);
table.addView(tr);
tr.setOnClickListener(mClickListener);
}
Затем в OnClickListener:
private OnClickListener mClickListener = new OnClickListener()
{
public void onClick(View v)
{
try
{
String clickedRow = (String) v.getTag();
Toast toast = Toast.makeText(mContext, clickedRow, Toast.LENGTH_SHORT);
toast.show();
}
catch (Exception ex)
{
Toast toast = Toast.makeText(mContext, ex.toString(), Toast.LENGTH_SHORT);
toast.show();
}
}
};
Если я не найду другого решения, я буду использовать ту же идею для ContextMenu
- public boolean onContextItemSelected(MenuItem item)
не имеет параметра просмотра, но
- public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
делает
поэтому я предполагаю, что я буду использовать переменную уровня класса для сохранения текущей строки в событии onCreateContextMenu и извлечения ее в onContextItemSelected