Color de fondo del tablerow del cambio de OnClick

Así que estoy tratando de encontrar una manera fácil de obtener el color de fondo o una fila de la tabla para cambiar cuando se hace clic en. He estado tratando de encontrar una manera de llamar a lo que el color de fondo es y comprobarlo, pero no he encontrado una manera de llamar el color. Esto es lo que tengo ahora mismo.

RowName = (TableRow) findViewById(R.id.RowName); RowName.setBackgroundColor(Color.TRANSPARENT); RowName.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (RowName.equals(Color.TRANSPARENT)) RowName.setBackgroundColor(Color.YELLOW); else if (RowName.equals(Color.YELLOW)) RowName.setBackgroundColor(Color.TRANSPARENT); } }); 

Sé que está mal. Espero que pueda ver lo que estoy tratando de lograr. Si no, lo que quiero hacer es tener el comienzo de la fila de la tabla de transparente. Cuando alguien hace clic en la fila de la tabla, quiero que cambie a amarillo. Luego, si vuelven a hacer clic en él, quiero que vuelva a ser transparente. Gracias.

Es necesario establecer el color de fondo de la fila en una lista de estado (que maneja seleccionar, presionado, activo, no activo).

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

El XML debería verse así:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Active state --> <item android:state_selected="true" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> <!-- Inactive state--> <item android:state_selected="false" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> <!-- Pressed state--> <item android:state_pressed="true" android:drawable="@android:color/yellow" /> <!-- Selected state (using d-pad) --> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@android:color/yellow" /> </selector> 

Así que aquí está lo que terminó trabajando. Asegúrese de que tiene su TableRows llamado. Antes de mi en crear tengo

private TableRow RowName;

tambien tengo

int estado = 0;

. Luego agrego el código

 public void RowName(View view) { switch (state) { case 0: RowName.setBackgroundColor(Color.YELLOW); state = 1; break; case 1: RowName.setBackgroundColor(Color.TRANSPARENT); state = 0; break; } } 

Para que funcione, vaya al xml y, en la propiedad OnClick, añada RowName o el nombre del void público con el que está trabajando. Disfrutar.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.