2010-11-30 6 views
6

J'ai cette liste personnalisée. chaque rangée contient une image et deux lignes de texte l'une en dessous de l'autre. Je veux ouvrir une nouvelle activité quand un élément de la liste est cliqué. mais je ne suis pas capable de le faire, même après l'implémentation de setOnItemClickListener(). S'il vous plait corrigez moi si je me trompe. le ci-dessous est le code de la liste. PS: Il s'agit d'une activité normale et non d'une activité de liste.android list view clickable probleme

l1.setAdapter(new EfficientAdapter(this,eventTitleArray,eventDateArray,eventImageLinkArray)); 
    //l1 = getListView(); 
    l1.setClickable(true); 
    l1.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, 
     int position, long arg3) { 
    Intent intent = new Intent(MainActivity.this, DisplayActivity.class); 
    Bundle b = new Bundle(); 
    b.putString("event", eventTitleArray[position]); 
    intent.putExtras(bundle); 
    startActivity(intent); 

    Toast.makeText(getApplicationContext(), "Opening detailed view for:"+eventTitleArray[position], Toast.LENGTH_SHORT).show(); 


    } 
    }); 

Répondre

13

S'il vous plaît jeter un oeil si la mise en page de ligne a tous les éléments qui sont focalisable. Si un élément ListView contient des enfants pouvant être mis en focus, le gestionnaire ListView ne sera pas déclenché.

+0

J'ai essayé de le faire, holder.firstLine.setFocusable (false); \t \t \t \t holder.secondLine.setFocusable (false); \t \t \t \t holder.imageView.setFocusable (false); mais ça ne marche toujours pas. firstLine, secondLine et imageView sont présents dans chaque disposition de ligne. –

2

Je pense qu'il ya un bug dans le SDK qui empêche les onItemClickListeners de tirer quand il y a des vues vario dans la vue de vos articles.

Vous devriez donc essayer de faire un setFocusable (false) sur toutes les vues de vos éléments.

Le problème est décrit here