¿Cómo obtener el evento de clic de la fila de la tabla / elemento de la tabla?

Tengo una disposición simple de la tabla en el archivo de .xml. Estoy añadiendo componentes a ella en tiempo de ejecución. El siguiente es mi código:

public class Home extends Activity{ TextView tv1; int i;TableRow tbrow; String [] names = {"First Name","Last Name", "Title","Company","Phone"}; int [] images = { R.drawable.icon,R.drawable.icon,R.drawable.star2,R.drawable.icon,R.drawable.icon} @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TableLayout ll=(TableLayout) findViewById(R.id.tableLayout1); TableRow trow=new TableRow(this); ImageView Image1=new ImageView(this); ImageView Image2=new ImageView(this); ImageView Image3=new ImageView(this); ImageView Image4=new ImageView(this); tv1=new TextView(this); trow.setClickable(true); Image1.setImageResource(R.drawable.blank); Image2.setImageResource(R.drawable.star2); Image3.setImageResource(R.drawable.blank); Image4.setImageResource(R.drawable.blank); tv1.setText("Brochures"); trow.addView(Image1); trow.addView(tv1); trow.addView(Image2); trow.addView(Image3); trow.addView(Image4); trow.setId(0); ll.addView(trow); for(i=1;i<5;i++){ tbrow=new TableRow(this); ImageView img1=new ImageView(this); tv1=new TextView(this); CheckBox chk=new CheckBox(this); ImageView img2=new ImageView(this); ImageView img3=new ImageView(this); img1.setImageResource(R.drawable.pdf); img2.setImageResource(R.drawable.blank); img3.setImageResource(R.drawable.blank); tv1.setText(""+names[i]); tbrow.addView(img1); tbrow.addView(tv1); tbrow.addView(chk); tbrow.addView(img2); tbrow.addView(img3); tbrow.setId(i); Log.e("TAG", "ID: "+tbrow.getId()); tv1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(Home.this, ""+tbrow.getId(), Toast.LENGTH_SHORT).show(); Log.e("TAG", " clicked ID: "+tbrow.getId()); } }); ll.addView(tbrow); } } } 

Cada vez que haga clic en cualquiera de las filas, se desencadena el evento onClick() de la última fila. En lugar de la vista de texto, también intenté activar el evento onClick() para la fila de la tabla, pero en vano.

Quiero saber a qué fila se hace clic. getID() , setID() no funcionará.

Por favor ayuda.

One Solution collect form web for “¿Cómo obtener el evento de clic de la fila de la tabla / elemento de la tabla?”

Cambiar la línea

tbrow = nuevo TableRow (este);

a

 final TableRow tbrow = new TableRow(this); 

y funcionará como usted espera.

  • (TableLayout) findViewById (excepción de puntero nulo
  • Las vistas agregadas a TableLayout no se muestran mediante programación
  • ¿Es posible especificar la altura de TableRow?
  • Cómo ampliar Android TableLayout
  • Cómo agregar editText.addTextChangedListener en TableLayout
  • Cómo llenar la pantalla con cuatro botones con el diseño de la tabla?
  • Líneas de borde para celdas en GridLayout, TableLayout o GridView?
  • ¿Cómo funciona android: shrinkColumns y android: stretchColumns?
  • Línea de encabezado de TableLayout de Android
  • Alineación de la disposición de la tabla de Android
  • ¿Cuál es el equivalente de "colspan" en un Android TableLayout?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.