Je recherche a annuler un Toast pour afficher le suivant. Je recherche plus spécifiquement la comportement des Toast comme dans l'application le monde sur Android. Je m'explique à la sélection d'un nouvelle élément dans le menu on affiche sous forme d'un Toast le nom du menu.
Voici un extrait de mon code :
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
public class MainActivity extends TabActivity {
 
    private Toast toast;
    private String toastMsg;
 
    private void toast(){
        if(toast!=null){
            toast.cancel();
        }
        toast = Toast.makeText(MainActivity.this, toastMsg,Toast.LENGTH_SHORT);
 
        toast.show();
    }
}
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final TabHost tabHost = getTabHost();
        final TabWidget tabWidget = getTabWidget();
 
 
        tabWidget.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                tabHost.setCurrentTab(arg2);
                toastMsg = "New Tab"+arg2;
                toast();
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
 
            }
        });
}
}
J'effectue bien l'appel depuis le Thread Main UI. Cependant les Toast s'affiche les un à la suite des autre si je sélectionnes plusieurs éléments rapidement dans le menu sans attendre la fin du TOAST précédent.
J'ai tenter d’exécuter ce code sur plusieurs versions d'android du 1.5 au 2.2 et aucune différence. J'ai aussi effectué des testes sur téléphone physique et rien ne change non plus. Google fournis dans son SDK du code exemple dans le programme AlarmController et effectue du cancel de ces Toast, cependant le cancel ne change rien comme dans mon programme.
Si vous avez une solution je suis très fortement preneur.
Merci