J'utilise ArrayAdapter pour remplir un ListView. Après la sélection et l'élément, il affiche une boîte de dialogue de confirmation Y/N. Si le choix de l'utilisateur est négatif, il devrait être en mesure de sélectionner un autre élément affichant le même dialogue. Etc.Android: onItemClick ne renvoie que l'élément sélectionné en premier
Voici mon code:
lView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(final AdapterView<?> parent, final View v, final int index, final long id) {
Toast.makeText("Selected file"+ mFiles.get(index).getfileName(),
Toast.LENGTH_SHORT).show();
SelectedFile = mFiles.get(index);
showDialog(DIALOG_CONFIRMIMPORT_ID);
}
});
La chose étrange est que si le « Toast » montre l'élément clicked à chaque fois, seul le premier élément sélectionné depuis l'activité est initiée est passé à « SelectedFile ». Quel que soit le nombre de fois où vous cliquez sur un élément différent, "SelectedFile" suppose toujours la même valeur, la valeur du premier élément cliqué, en dehors de ce code.
Heres mon code de dialogue:
Protected Dialog onCreateDialog(int id) {
switch(id) {
case DIALOG_CONFIRMIMPORT_ID:
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String message = String.format(getString(R.string.importstudentfileconfirm),SelectedFile.getfileName());
builder.setMessage(message)
.setCancelable(false)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Activity.this.finish();
// startActivity(new Intent(Activity.this, LOL.class));
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
SelectedFile = null;
dismissDialog(DIALOG_CONFIRMIMPORT_ID);
mFiles.notifyAll();
}
});
AlertDialog alert = builder.create();
return alert;
}
}
return null;
}
Merci beaucoup pour toute aide!
Vous avez complètement raison! Merci beaucoup pour votre réponse rapide. À votre santé! –
Si cela répond à votre question, pourriez-vous accepter la réponse en cliquant sur le cadre de la case à cocher à gauche de la réponse. Merci! – plainjimbo
Terminé. Pour une raison quelconque, la case à cocher ne s'affiche pas sur mon Firefox. –