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

¿Fue útil?

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,

enter image description here

Editado

Oh *%#$ Resuelto, Necesarios para establecer la RelativeLayouts Add State from Children = true;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top