J'ai une application Android utilisant ListActivity. Quand un élément de la liste est cliqué, je voudrais afficher une boîte de dialogue de confirmation à l'utilisateur, puis effectuer une action sur l'élément cliqué. Cependant, à partir du gestionnaire onClick de la boîte de dialogue, je ne peux pas accéder à la variable de position à partir de l'événement onClick de la liste, donc je ne peux pas dire sur quel élément l'utilisateur a cliqué.Android: Utiliser AlertDialog dans un événement onItemClick de ListView
Voici un exemple de ce que je suis en train de réaliser:
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
// This doesn't work, can't access position from here
Object o = MyListActivity.this.getListView().getItemAtPosition(position);
testFunction(o);
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(MyListActivity.this);
builder.setMessage("Are you sure you want to do this?").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
}
});
Je suppose que je pourrais transmettre les informations en stockant dans une variable membre sur l'activité, mais il semble qu'il devrait y avoir un meilleure solution! Quelqu'un peut-il me renseigner sur la façon correcte/sensée de le faire?
Merci, Andy
Sonne comme une manière décente de le faire, merci! –