Bonjour.

J'ai un petit problème, pas bien compliqué je pense, mais je ne parviens pas à trouver de l'aide sur internet.

Dans mon activity, j'ai une listeView. Dans cette liste view, si on fait un long clique sur un item, je souhaite le supprimer.
Mais avant, je veux afficher un message de confirmation.
Afin d'interpréter le choix de l'utilisateur, j'utilise une variable booléenne (globale) qui vaut "true" s'il clique sur ok, "false" sinon.
Ensuite j'ai un bloc "if" qui réalise une action si la variable vaut "true".
Comme je supprime un item, je refait appel a mon activité courante afin de rafraichir la liste.
Jusque là pas bien compliqué.

Le problème c'est que l'action en question ne se réalise pas directement après l'appui sur ok, mais au prochain appui long sur un item.
Comment puis-je faire pour que cette action se réalise directement à la suite de l'appui sur "ok" ? Par exemple ajouter un "wait" entre le clique et la condition if.

Voici la partie de mon code qui correspond à un lonclick sur un item. La variable "ok" est déclarée en global initialisée à "false".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
	       // ListView Item Click Listener (Lorsque l'on clique sur la liste)
        list.setOnItemLongClickListener(new OnItemLongClickListener() {
 
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view,
               int positionIni, long id) {
                 	int position = positionIni-1;
 
 
                 	//Ouverture de la BDD
            		ticketBDD.open();
 
	                //Récupération de l'objet ticket
	        		Object tidi = security.get(position);
	        		int indexTidi = security.indexOf(tidi)+1;
 
	        		//Conversion de l'objet en String, utilisation de Regex pour trouver l'ID puis conversion de l'ID en int
	        		String vect=(security.get(position)).toString();
	        		String idt = findMatch(vect);
	        		final int idts = Integer.parseInt(idt);
 
 
 
	        		//on créé une boite de dialogue
	        		AlertDialog.Builder adb = new AlertDialog.Builder(ticketDeleteActivity.this);
 
	        		//on attribue un titre à notre boite de dialogue
	        		adb.setTitle("Sélection Item N°"+indexTidi+" ID : "+idts);
 
	        		//on insère un message à notre boite de dialogue, et ici on affiche le titre de l'item cliqué
	        		adb.setMessage("DESCRIPTION : "+security.get(position));        		
 
	        		//on indique que l'on veut le bouton ok et annuler à notre boite de dialogue
	        		adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
	        			public void onClick(DialogInterface dialog, int which) {
 
	    	        		ok = true;	
 
 
	        			}
	        		});
 
	        		adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
		                public void onClick(DialogInterface dialog, int which) {
 
		                	//Affichage d'un toast qu'aucun ticket n'a été supprimé
		                	Toast.makeText(getApplicationContext(),
		          	                 "No ticket deleted", Toast.LENGTH_SHORT)
		          	                 .show();		                		
		                	}
		        		});
	        		//on affiche la boite de dialogue
	        		adb.show();
 
 
	        		if (ok==true){
 
        				//Suppression du ticket (A remplacer par son ID et non la posiotion de son item)
    	        		ticketBDD.removeTicketWithID(idts);
 
    	        		//Afficheage d'un toast de confirmation de suppression
                    	Toast.makeText(getApplicationContext(),
              	                 "Ticket "+idts+" deleted", Toast.LENGTH_SHORT)
              	                 .show();
 
    	        		//Rafraichissement de la vue après suppression d'un ticket
    					Intent intent = new Intent(ticketDeleteActivity.this, ticketDeleteActivity.class);
    					startActivity(intent);
	        		}
 
 
 
 
        		ticketBDD.close();
 
		return true;
 
            }
        });
Merci par avance si quelqu'un peut m'éclairer.