2013-05-08 3 views
0

J'affiche la liste dans mes applications. Lorsque l'utilisateur peut cliquer sur la liste, il va envoyer à l'activité suivante. La liste est affichée correctement mais la liste est cliquable sur une version inférieure à 3.0 et non cliquable sur une version supérieure à 3.0. Je ne comprends pas où je me trompe. J'utilise listfragment pour afficher la liste et remplacer la méthode onListItemClick. J'ai essayé une solution sur stackoverflow mais n'atteignez pas mon objectif. S'il vous plaît quelqu'un a-t-il une solution?android: Listview n'est pas cliquable sur les versions supérieures à 3.0?

Voici la méthode onListItemClick de listfragment.

@Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     l.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View view, int arg2, 
        long arg3) { 
       Intent href = new Intent(getSherlockActivity(), ProjectDetailActivity.class); 

       String projId = ((TextView) view.findViewById(R.id.projectId)).getText().toString(); 
       String projName = ((TextView) view.findViewById(R.id.projectName)).getText().toString(); 
       Log.v("in itemclickListener", "click"+((TextView) view.findViewById(R.id.projectId)).getText().toString()); 

       getSherlockActivity().startActivity(href); 
      } 
     }); 
    } 

ci-après le listview.xml

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="1dp" 
    android:divider="@drawable/divider" 
    android:smoothScrollbar="true" 
    android:dividerHeight="1dp" 
    android:scrollbarThumbVertical="@drawable/divider" 
    android:drawSelectorOnTop="false" 
    android:listSelector="@drawable/list_selector" 
    android:clickable="true" 
    > 
</ListView> 
+0

Pourquoi imbriquez-vous onItemClickListener? Les fragments sont pris en charge à partir du niveau d'API 11. – FrancescoAzzola

+0

dans la classe SherlockListFragment. J'utilise la bibliothèque Sherlock. –

+0

Vous devez supprimer l'écouteur imbriqué – FrancescoAzzola

Répondre

3

Je pense que la façon suivante suffit.

listview.setOnItemClickListener(new OnItemClickListener() { 

    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
     // TODO Auto-generated method stub 
    } 
}); 

enlever la méthode onListItemClick() et écrire de cette façon dans la méthode oncreate() lui-même.

J'espère que cela va vous aider.

+0

Je ne suis pas écrit sur OnListItemClick n'importe où. même chose que j'ai mis en œuvre ci-dessus. –

+0

voir votre question 'public void onListItemClick (ListView l, Voir v, position int, long id)'. Qu'est-ce que c'est? – Gunaseelan

+0

c'est la méthode de remplacement de Listfragment. vous avez dit d'écrire setOnItemClickListener dans la méthode oncreate mais cela ne fonctionne pas. –

Questions connexes