2012-07-23 8 views
28

Implementé el android listview con el ListActivity. Aquí tengo el problema de que cuando hago clic en el elemento de la lista, no se realiza ninguna acción cuando tampoco viene el color del flash, que es el color naranja. Entonces, ¿tienes alguna idea sobre esta amable respuesta a mi pregunta?Click no está funcionando en Listitem Listview android

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{ 
    super.onListItemClick(l, v, position, id); 
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT) 
      .show(); 

} 

Pongo este código también en la actividad de lista principal.

+2

Se puede publicar su código, PLZ – Nermeen

+0

y su lista de códigos adaptador – rajpara

+1

¿Tiene algún botón o ImageButton en su lista? –

Respuesta

107

La primera cosa que lo que tiene que tener en cuenta es, cada vez que hay elementos Clickable como botones o ImageButtons presente en su elemento ListView, toman el control de clic eventos. Y entonces su ListView no tendrá la oportunidad de aceptar el evento click.

Lo que simplemente tiene que hacer es establecer el atributo focusable en falso para Button o ImageButton que tiene en su ListView. Pero aún así funcionarán sin ningún problema y también su ListView onListItemClick también funcionará.

Prueba de esto,

 <Button android:id="@+id/textsize_increaser" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/back_button" 
     android:focusable="false" 
     android:text=" A + "/> 

Aquí he añadido este android:focusable="false" y funciona bien. intentalo.

+2

Debe agregar también 'clickable = false' si escucha el elemento, haga clic solo en – mente

+0

Ayúdeme. He estado atrapado en esto durante las últimas 7 horas, y es una pregunta tan simple. http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

+1

Para mí, 'imageButton.setFocusable (false)' y 'imageButton.setFocusableInTouchMode (false)' ** en adaptador ** ayudado. ¡En XML no hubo efecto! – user2878850

9

se ha marcado el modo de elección de ListView en SINGLE:

 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

Y si tiene alguna imageview hacer clic o TextView o un botón en el elemento de la lista, a continuación, hacer que no enfocable (en la clase de adaptador):

 yourButton.setFocusable(false); 
     yourButton.setFocusableInTouchMode(false); 
+0

Por favor, ayúdenme. He estado atrapado en esto durante las últimas 7 horas, y es una pregunta tan simple. http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

4

¿Está utilizando un adaptador personalizado? e inflar el diseño con un botón o cualquier vista que consuma el foco de vista de lista de lista como elemento secundario, entonces no funcionará obviamente. asegúrese de establecer

android:focusable="false" 

a dicha vista en el archivo xml. Espero que esto funcione para usted.

+0

Por favor, ayúdenme. He estado atrapado en esto durante las últimas 7 horas, y es una pregunta tan simple. http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

4

Conjunto esto en su archivo Java ListActivity

listview1.setFocusable(false); 
1

Eclipse me sugirió que agregara textIsSelectable="true" a mis TextViews en el diseño xml que se utilizó para la vista de lista.

Bueno, si desea hacer clic en los elementos de la lista, entonces no debe agregar esas etiquetas.

0

se refieren a este post para una solución:

Click is not working on the Listitem Listview android

View v = parent.getChildAt(position); 
parent.requestChildFocus(v,view); 
v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row")); 

int count = parent.getChildCount(); 
for(int i=0; i<count; i++) 
{ 
    if(i!=position) 
    { 
    v = parent.getChildAt(i); 
    v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row)); 
    } 
} 
0
listview.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int pos, 
        long id) { 
       Toast.makeText(v.getContext(), exm.get(pos).getDefinition(), 
         Toast.LENGTH_SHORT).show(); 


      } 
     }); 
0

En realidad no es un parámetro destinado a que para evitar opiniones de los niños de conseguir el enfoque, sólo tiene que añadir lo siguiente en la matriz disposición:

android:descendantFocusability="blocksDescendants" 

Según la documentación explica:

ViewGroup bloqueará sus descendientes para que no reciban el foco.

0

asegurarse de que son

  1. No usar Scroll View con Lista Ver
  2. No usar Scroll View en su diseño de elemento de la fila de Lista Ver

Si Scroll View está presente en cualquiera de los lugares anteriores, quítelo

0

listItemButton.setFocusable (false); listItemButton.setFocusableInTouchMode (false);

Configure lo anterior en su adaptador . No su trabajo en xml

Cuestiones relacionadas