Actualmente estoy desarrollando una aplicación para Android que tiene múltiples listas de visitas. En la implementación de ListView, inflico una celda para cada elemento de vista de lista. Este es el category_cell.xml¿Cómo establecer diferentes colores de estados presionados para cada elemento listview?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="60dip"
android:id="@+id/cell_layout"
android:background="@drawable/list_bg">
<RelativeLayout
android:id="@+id/category_cell_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/category_image"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:layout_height="45dip"
android:layout_width="45dip" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/category_name"
android:text="Category Name"
android:textSize="16dip"
android:typeface="sans"
android:layout_centerVertical="true"
android:layout_marginLeft="70dip"
android:textColor="@color/white" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/arrow_image"
android:background="@drawable/list_arrow"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dip" />
</RelativeLayout>
</RelativeLayout>
En el fondo de esta célula, se coloca un xml estirable. que tiene list_bg.xml siguiente código:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="false"
android:state_pressed="false"
android:drawable="@color/transparent" />
<item
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_selected="true"
android:state_pressed="false"
android:drawable="@color/blue" />
</selector>
al rellenar la vista de lista con los artículos, que desea establecer un color diferente para los estados prensadas y enfocada del xml de fondo para cada elemento. Cada elemento contiene el valor de un color y quiero establecer ese color en el estado presionado de ese elemento.
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},getResources().getDrawable(R.color.translucent_red));
states.addState(new int[] {android.R.attr.state_focused},getResources().getDrawable(R.color.white));
states.addState(new int[] { },getResources().getDrawable(R.color.white));
row.setBackgroundDrawable(states);
que habían tratado de implementar esto, pero esto normalmente se acepta estirable como un segundo parámetro de la función add_state pero quiero publicar un color no .... Podría alguien por favor me ayude ???
no puede c ur archivos XML. edite las preguntas y coloque el código d correctamente – Lavanya
@Rosalie: los archivos XML se muestran correctamente con el código. Por favor revisa ahora. –
Gracias chicos. El problema ha sido resuelto. Lo había intentado una y otra vez por mí mismo y finalmente lo logré. –