ListView en Android no permite el selector a trabajar, ni tampoco permite que selecciones
-
14-11-2019 - |
Pregunta
Bien sé que esto puede sonar como cualquier otras cuestiones relacionadas con el control ListView y ListActivity problemas, pero esto no es, me voy a volver loco como me ha pasado en la última semana pasado y en la búsqueda de todos los post para encontrar alguna solución a esto que me puede ayudar.Ya lo intenté Elemento ListView de fondo a través de custom selector y GetView Vs.BindView en una costumbre CursorAdapter? todo lo que sea posible blogs, sitios de...
Bien el problema, Mi listView para un 1 no se permite la selección de fuego/eventos y 2.no va a cambiar la fila de relieve cuando un elemento se hace clic.Tengo un estándar TestActivity
ampliación de ListActivity
y he implementado una Costumbre TestCursorAdapter extends SimpleCursorAdapter
Ahora en XML lado de las cosas que tengo en test_list_view.xml
y una segunda row_view.xml
Ahora he seguido el de arriba, menciona respuestas y aplicar selector
como row_selector.xml
.Pero el problema es para una de las filas no acepta cualquier clic o el enfoque de los eventos.He implementado un básico brindis para indicar si hay algo sucediendo
@Override
protected void onListItemClick(ListView l, View v , int postion, long idontnow){
Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_SHORT ).show();
}
parte de test_list_view.xml
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:cacheColorHint="#00000000"
android:focusable="true"
android:listSelector="@color/row_selector"
android:background="@color/Transparent"/>
parte de selector.xml (básicamente, copiado y pegado de uno de los mencionados enlaces)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false"
android:drawable="@color/Transparent" />
<item
android:state_focused="true"
android:state_enabled="false"
android:state_pressed="true"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_enabled="false"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="true"
android:drawable="@color/green" />
<item
android:state_selected="true"
android:drawable="@color/blue" />
<item
android:drawable="@color/Transparent" />
</selector>
He seguido todas las opciones que soy consciente, y todavía nada. La única diferencia importante es que los chicos no estoy utilizando getView
en lugar de eso estoy usando bindView
.
Cualquier ayuda chicos será muy apreciada.
gracias de antemano.
Sanj
Solución
Sugiero que se quite el android:focusable="true"
a partir de la ListView
.
Además, puede utilizar la selector
como el color de fondo de los elementos que se muestran en la ListView
.También asegúrese de que estos elementos no están llamando onClick
o onTouch
o algo así, y dejar que el ListView
manejar los eventos de clic.
Espero que esto ayude
EDITAR:
para tu problema de seleccionar el elemento de uso
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
yourMethod();
}
});
Otros consejos
siguiente raukodraug la sugerencia y post ListView OnItemClickListener No Responde?
Otro hecho que como se ha mencionado el uso de bindView
método, he usado
view.setClickable(true);
view.setFocusable(true);
el elemento, haga clic en el tipo de obras que, sólo si hace clic en la región marcada en Amarillo y la ImageView
.Yo debería ser capaz de entender esto, gracias,
Editado
Oh *%#$ Resuelto, Necesarios para establecer la RelativeLayouts Add State from Children = true;