Haga clic en el elemento de lista de un control ListView no responde

Estoy implementando ListView en mi código. Pero Cuando hago clic en los elementos, no responde responde al hacer clic en cualquier forma. Podría alguien ayudarme por favor? Gracias de antemano .

Aquí está el código .

public class ListaActivity extends Activity {

    public final static String EXTRA_MESSAGE = "com.example.provacomunicazione.MESSAGE";
    @Override
    public void onCreate(Bundle savedInstanceState)  {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.lsta);
        Resources res = getResources();
        String[] Authors = res.getStringArray(R.array.Lista_Nomi_E_Cognomi_Autori);
        ArrayList<String> Autori = new ArrayList<String>();
        for (String temp:Authors) {
            Autori.add(temp);
        }
        Collections.sort(Autori);
        ArrayList<String> AutoriLetteraSelezionata = new ArrayList<String>();
        for (String temp:Autori) {
            if (temp.charAt(0)=='A') {
                AutoriLetteraSelezionata.add(temp);
            }
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.textviewitem, AutoriLetteraSelezionata);
        ListView listView = (ListView) findViewById(R.id.listView1);
        listView.setAdapter(adapter);
        listView.setClickable(true);
        listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

            CharSequence autore = "("+((TextView)view).getText()+")";

            Intent i = new Intent(ListaActivity.this, SecondaryActivity.class);
            i.putExtra(EXTRA_MESSAGE, autore);
            startActivity(i);  
        });
    }
}    
  • usted debe eliminar esta línea: listView.setClickable(true);
  • gracias, pero he probado y no funciona, de todos modos, pero tienes razón, es útil

3 Kommentare

  1. 36

    Debe definir en todos los objetos secundarios en el elemento listview (TextView, ImageView etc.):

    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"

    Y para el elemento raíz RelativeLayout /LinearLayout y así, definir:

    android:clickable="false"
    android:descendantFocusability="blocksDescendants"
    android:focusable="false"
    android:focusableInTouchMode="false"

    Si no los defina, que se «captura» en el evento click.
    Y si tienes un Custom listView adaptador, acaba de comprobar que reemplaza:

    @Override
    public boolean isEnabled(int position)
    {
        return true;
    }
    • Wow, tengo otro adaptador personalizado donde los clics funcionar bien, pero la otra lista que necesitaban para trabajar. Raro, pero feliz de que funcionó 😀
    • estoy usando listview personalizado con cardview.Listiview haga clic en no trabajar
    • Gracias por la respuesta , me acaba de quitar onclik verdad sobre los puntos y funcionó
  2. 0

    En mi caso el problema estaba en el hecho de que un ListView contenida HorizontalScrollViews.

    VHS consume clics sobre los elementos y no volver OnItemClick a la ListView.

    He resuelto el problema cuando escribió un OnClickListener dentro de un adaptador que devuelve una devolución de llamada a la ListView. Ver aquí: https://stackoverflow.com/a/43653085/2914140.

  3. -3

    En el Artículo del cliente,

    conjunto de todos los elementos

    android:clickable="true"
    android:focusable="false"

    me funciona

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea