-1

Je veux créer un listview à partir duquel on peut utiliser onclick et dans lequel on appuie longuement sur un menu contextuel. le code estComment utiliser onClick et onLongPress dans ListActivity?

public class MainActivity extends ListActivity{ 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     String quizlist[]={"Normal","MCQ 2 Options","MCQ 3 options","MCQ 4 Options"}; 
     ArrayAdapter<String> ab=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,quizlist); 
     setListAdapter(ab); 
    } 
}  

Merci à l'avance

Répondre

0

Vous pouvez enregistrer un AdapterView.OnItemLongClickListener sur le ListView. Donc ce que vous devez faire est de trouver la vue de la liste:

dans onCreate essayer

((ListView) getView).setOnItemLongKlickListener(...) 

ou

((ListView) findViewById(<the id of your list view>).setOnItemLongKlickListener(...) 

Lors de la mise en œuvre d'un OnItemLongClickListener vous devrez remplacer la méthode onItemLongClick:

De la documentation:

public abstract boolean onItemLongClick (AdapterView<?> parent, View view, int position, long id) 

Ajouté au niveau de l'API 1 méthode de rappel à invoquer lorsqu'un élément ce point de vue a été cliqué et tenue. Les implémenteurs peuvent appeler getItemAtPosition (position) s'ils ont besoin d'accéder aux données associées avec l'élément sélectionné.

Parameters 
parent  The AbsListView where the click happened 
view  The view within the AbsListView that was clicked 
position The position of the view in the list 
id   The row id of the item that was clicked 

Returns true if the callback consumed the long click, false otherwise 

Alors, parent est votre ListView. view est l'affichage de l'élément de liste * long cliqué. position est la position dans la liste et donc aussi la position dans votre tableau. Pour id je ne suis pas sûr si les implémentations par défaut renvoie une constante ou le position.

+0

Pouvez-vous expliquer ce que chaque argument ici représente? AdapterView.OnItemClickListener ss = new AdapterView.OnItemClickListener() { \t \t \t @Override \t \t \t onItemClick public void (AdapterView arg0, Vue arg1, arg2 int, \t \t \t \t \t longue arg3) { \t \t \t \t \t \t \t} \t \t}; –

+0

1) 'OnItemClickListener' est le mauvais. Vous vouliez un * OnItem ** Long ** ClickListener *; 2) Je vais ajouter quelque chose à ma réponse. –

+0

Les arguments sont les mêmes pour les deux auditeurs –