2017-02-27 5 views
-1

Ich habe Spinner Toast auf bestimmten Artikel in Spinner angezeigt.Problem mit dem Spinner

Ich zeige Toast an, wenn "Andere" in Spinner ausgewählt ist. Ich habe es wie unten getan:

spinnerTemp=(Spinner)findViewById(R.id.spinnerTemp); 
    spinnerTemp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      if(spinnerTemp.getSelectedItem().toString().equals("other")){ 
       Toast.makeText(SocialLoginActivity.this, "Displayed", Toast.LENGTH_SHORT).show(); 
      } 
     } 

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

     } 
    }); 

Das Problem ist Als ich „andere“ für das erste Mal bin Auswahl, Toast anzeigt ..: FINE. Jetzt, auf der Stelle Wenn ich "andere" wieder wähle, dann wird Toast nicht angezeigt. Warum ?

Nun, wenn ich einen anderen Wert auswählen und erneut versuchen, "andere" auszuwählen, funktioniert es gut. Problem ist mit der Auswahl "andere" nacheinander.

Was könnte das Problem sein?

Danke.

+0

bedeutet es in der ersten Zeit Auswahl funktionieren und beim nächsten Mal nicht richtig Toast bekommen. – Harshid

+0

siehe hierzu: http: //stackoverflow.com/questions/10854329/spinner-onitemselected-not-called-when-selected-item-remain-the-same – rafsanahmad007

+0

Sie sollten onItemClickListener anstelle von onItemSelectedListener verwenden. –

Antwort

0

hier ein wenig bessere Umsetzung:

@Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     // On selecting a spinner item 
     String item = parent.getItemAtPosition(position).toString(); 

     // Showing selected spinner item 
     Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show(); 
    } 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 
    } 
0

Versuchen Sie, diese

spinnerTemp=(Spinner)findViewById(R.id.spinnerTemp); 
spinnerTemp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     String item = spinnerTemp.getSelectedItem().toString(); 
     if(item.equalsIgnoreCase("other")){ 
      Toast.makeText(SocialLoginActivity.this, "Displayed", Toast.LENGTH_SHORT).show(); 
     } 
    } 

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

    } 
});