Je travaille avec Spinner, curseurs et adaptateurs. Je veux configurer un écouteur de clic pour le spinner de sorte que, une fois qu'un utilisateur sélectionne un élément du spinner, il obtienne l'élément sélectionné en cours, puis réalise d'autres tâches (tout ce code supplémentaire est bien, son juste 1 problème Je l'ai) ... Cela fonctionne cependant, une fois que je déclare le rappel setOnItemSelectedListener, puisque le curseur a déjà été rempli, l'événement est déclenché dès le lancement de l'application.Android spinner "onclicklistener" question
Je suppose que j'ai besoin d'un moyen de définir le curseur sans sélectionner un élément initial afin que l'événement ne se déclenche pas (car un élément ne sera pas sélectionné). Ou y a-t-il un autre meilleur moyen d'y parvenir?
Fondamentalement, en l'état, une fois que l'application charge la fonction setOnItemSelectedListener se déclenche parce que le curseur est peuplé (je pense). De plus, en ignorant le fait que l'événement est en train de se déclencher trop tôt, si je sélectionne alors le même objet dans le spinner, il ne déclenche pas l'événement car l'élément n'a pas changé. Dois-je utiliser un callback différent au lieu de setonitemslectedlistener? Voici le code que j'ai jusqu'ici.
c = db.getallrecents();
startManagingCursor(c);
busnumspinner = (Spinner) findViewById(R.id.Spinner01);
SimpleCursorAdapter spinneradapter = new SimpleCursorAdapter(this,
R.layout.lvlayout, c, spincol, spinto);
busnumspinner.setAdapter(spinneradapter);
busnumspinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
String spinnerString = null;
Cursor cc = (Cursor)(busnumspinner.getSelectedItem());
if (cc != null) {
spinnerString = cc.getString(
cc.getColumnIndex("busnum"));
text = spinnerString;
}
showDialog(DATE_DIALOG_ID);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
J'ai modifié ma réponse, j'espère que cela aide – Javi