2017-09-12 2 views
0

Normalement spinner peut obtenir un élément par setOnItemSelected mais que se passe-t-il si l'utilisateur n'a pas cliqué pour sélectionner du tout? Alors comment dois-je modifier le code pour détecter si l'utilisateur clique sur le spinner pour sélectionner l'élément ou non? Quelqu'un peut-il me conseiller s'il vous plaît?Comment détecter si un élément spinner est sélectionné ou non?

Voici mon code:

s = (Spinner) findViewById(R.id.Rg); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
      R.array.gender_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    s.setAdapter(adapter); 
    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      gender = adapterView.getItemAtPosition(i).toString(); 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

      Toast.makeText(Register.this, "Please select your gender", LENGTH_SHORT).show(); 
      return; 
     } 
    }); 
+0

Vous peut vérifier 'i' dans' onItemSelected' où i est la position sélectionnée ou vous pouvez également appeler 's.getSelectedItem()' –

Répondre

0

vous pouvez utiliser

Spinner.getSelectedItem()

ou

Spinner.getSelectedItemId() // retour l'identifiant de l'élément sélectionné (doit Verride la méthode "GetItemID" dans la classe d'adaptation)

ou

Spinner.getSelectedItemPosition() // retourne la position de l'élément sélectionné (index dans l'adaptateur)

+0

J'ai découvert un ensemble de tableau un élément vide peut également être détecté par le TextUtils.isEmpty(). –