Como mi requisito del proyecto tengo que resaltar la fila de la tabla en onClick. Hay alguna forma de hacer esto? O por favor sugiérame la alternativa?¿Cómo puedo resaltar la fila de la tabla al hacer clic?
Respuesta
Si desea utilizar la acción de clic destacado como el que se obtiene con un ListView genérico, que desea establecer el fondo de cada fila para ser android:background="@android:drawable/list_selector_background"
He aquí un ejemplo:
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0">
<TableRow
android:id="@+id/first_row"
android:background="@android:drawable/list_selector_background" >
... row content ...
</TableRow>
</TableLayout>
a continuación, en el código,
TableRow firstRow = (TableRow) findViewById(R.id.first_row);
firstRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO: do your logic here
}
}
Y usted debe conseguir una fila más destacado-poder al igual que en un ListView ...
EDITAR: Arriba le dará el selector de fondo de la lista del tema predeterminado. Si desea que el selector de más genérico (como el selector de diseño de material cuando el usuario toca una fila) utiliza este:
android:background="?android:attr/selectableItemBackground"
También esto se aplica a algo más que TableRows. Debería poder hacer esto en casi cualquier widget genérico con un onClickListener adjunto (TextViews, Buttons, etc.).
Obviamente no ha probado esto. Todo lo que hace es establecer el color de fondo de la fila de la tabla y agrega un clic-oyente a la fila, ** nada ** más. –
Lo he probado, y está siendo utilizado en la producción con bastante éxito. Tienes razón, establece el fondo. Lo que establece es la clave: el '@android: drawable/list_selector_background' es el resaltado estándar del tema del teléfono al hacer clic en una entrada en un ListView. Curiosamente, antes de dejar un comentario, ¿lo has probado? –
Lo he probado y funciona. Es exactamente lo que estaba buscando: comportamiento del botón para un TableRow. – Lekensteyn
Dentro del complemento OnClickListener:
tr1.setBackgroundResource(drawable.list_selector_background);
Dónde TR1 es su TableRow. (Necesitarás hacer la mesa final para que funcione).
gracias, pero cuando presiono la fila, se resalta y luego vuelve a estar sin resaltar. –
Incluso yo estaba enfrentando el mismo problema con la ayuda de respuesta Salil Pandit hizo un pequeño cambio a la misma y que funciona para mí
Ésta es TableRow
en xml:
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="5dip"
android:background="@drawable/selector">
Ésta es selector.xml
en res\drawable
carpeta
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@android:drawable/list_selector_background"></item>
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@android:drawable/list_selector_background"></item>
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@android:drawable/list_selector_background" />
<item android:drawable="@android:drawable/list_selector_background"></item>
</selector>
logró seguirlo, pero recuerde que durante la creación del selector en la carpeta dibujable, cree selector.xml como un recurso dibujable. –
String _row_selected = null;
boolean _is_selection_even = false;
private TableLayout TL;
TableRow row_data = new TableRow(this);
row_data.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (_row_selected != null) {
if (Integer.parseInt(_row_selected) == TL.indexOfChild(v)) {
if (_is_selection_even) {
TL.getChildAt(Integer.parseInt(_row_selected)).setBackgroundColor(0xFF00FF00);
_is_selection_even = false;
} else {
TL.getChildAt(Integer.parseInt(_row_selected)).setBackgroundColor(Color.WHITE);
_is_selection_even = true;
}
} else {
TL.getChildAt(Integer.parseInt(_row_selected)).setBackgroundColor(Color.WHITE);
v.setBackgroundColor(0xFF00FF00);
_row_selected = null;
_row_selected = TL.indexOfChild(v) + "";
}
} else {
v.setBackgroundColor(0xFF00FF00);
_row_selected = null;
_row_selected = summaryTL.indexOfChild(v) + "";
}
}
});
private OnClickListener tablerowOnClickListener = new OnClickListener()
{
public void onClick(View v)
{
//Highlight selected row
//Highlight selected row
for (int i = 1; i < tblItemDetail.getChildCount(); i++)
{
View row = tblItemDetail.getChildAt(i);
if (row == v)
{
row.setBackgroundColor(getResources().getColor(android.R.color.holo_red_light));
}
else
{
//Change this to your normal background color.
row.setBackgroundColor(getResources().getColor(android.R.color.transparent));
}
}
//...
}
};
funciona. table layout of row onclick listener y poner este código en él. – bhruguni
Muchas gracias, resolvió mi problema ..... me salvaste hoy –
- 1. Jquery: resaltar/resaltar la fila de la tabla al hacer clic
- 2. Android cómo hacer resaltar la vista cuando se hace clic?
- 3. ¿Cómo puedo resaltar una fila de tabla usando Prototype?
- 4. ¿Cómo resaltar la fila de la tabla al pasar el mouse utilizando solo CSS?
- 5. Impedir que la fila de la tabla haga clic en el evento para disparar al hacer clic en el botón dentro de la fila
- 6. JQuery: fila de la tabla que se puede hacer clic, excepto la última celda
- 7. Lista personalizada No resaltar ListViewItem al hacer clic
- 8. Android resaltar un botón imagen al hacer clic en
- 9. Cómo cambio el color de la celda de la tabla HTML al hacer clic en
- 10. ¿Cómo resaltar una fila en QTableWidget?
- 11. ¿Cómo puedo resaltar una fila completa de DataGrid cuando se hace clic en una sola celda?
- 12. jQuery basic: ¿Cómo puedo eliminar una fila de la tabla cuando se hace clic en un botón de esta fila?
- 13. Jquery agregue la fila de la tabla después de la fila que llama al jquery
- 14. Cómo enlazar un comando al hacer doble clic en una fila en la cuadrícula de datos
- 15. ¿Cómo hacer resaltar el botón?
- 16. fila de la tabla clon
- 17. Hacer editable la fila NSTableView al agregar objetos con NSArrayController
- 18. cómo llamar a la función javascript en fila de la tabla, haga clic
- 19. Enlace de la fila de la tabla HTML
- 20. mostrar/ocultar la imagen al hacer clic
- 21. MVC 3 Webgrid permite hacer clic en toda la fila
- 22. Resaltar fila actual en JTextPane
- 23. JqGrid: evitar el evento de comprobación de casilla de verificación al hacer clic en la fila y mantener el resaltado de fila habilitado
- 24. ¿Cómo eliminar la fila actual de la tabla en jQuery?
- 25. Cómo resaltar una fila en una UITableView
- 26. cómo hacer clic en toda la fila de la vista de lista?
- 27. jquery haciendo que la fila se pueda hacer clic a excepción de la última columna
- 28. NSButton sin "resaltar el clic"
- 29. Jeditable - resaltar todo el texto después de hacer doble clic
- 30. destino al hacer clic
Un poco tarde pero compruebe la respuesta de este hilo: http://stackoverflow.com/questions/6274343/how-to-change-the-background-color-of-a-tablerow-when-focused – Arnaud
Puede consultar para [este enlace] (http://stackoverflow.com/questions/4410420/onclick-change-tablerow-background-color) consulte la respuesta dada por Josh Clemm. – prateek
Consulte la respuesta editada aquí: http: //stackoverflow.com/a/7022137/2469134 –