2016-08-04 18 views
0

Ich habe einen Button:Wie Show-Taste nur, wenn Spinner ausgewählt sind

<Button 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="text" 
       android:id="@+id/test" 
       android:onClick="test" 
       android:visibility="gone"/> 

und ich habe 3 Spinner und ich mag, dass, wenn alle drei Spinner einen Wert ausgewählt, Taste Sichtbarkeit Änderung sichtbar.

Gibt es verschiedene Möglichkeiten, dies zu tun, ohne zu überprüfen, wann ich Spinner auswähle, wenn 3 Werte ausgewählt sind? Gibt es "Beobachter" für diese Art von Operation?

EDIT

Dies ist meine Funktion, die in diesem Moment, als ich bei onItemSelected in Spinnern nennen:

public void checkSpinner(){ 
     Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); 
     assert spinner1 != null; 
     int position1= spinner1.getSelectedItemPosition(); 

     Spinner spinner2 = (Spinner) findViewById(R.id.spinner2); 
     assert spinner2 != null; 
     int position2=spinner2.getSelectedItemPosition(); 

     Spinner spinner3 = (Spinner) findViewById(R.id.spinner3); 
     assert spinner3 != null; 

     int position3=spinner3.getSelectedItemPosition(); 
     Button button = (Button) findViewById(R.id.button); 
     if((position1>0) && (position2>0)&&(position3>0)) 
     { 

      button .setVisibility(View.VISIBLE); 
     }else{ 
      button .setVisibility(View.GONE); 
     } 
    } 
+0

Was haben Sie bisher versucht? – Sufian

+0

Ich habe eine Funktion, die jedes Mal ein Spinner starten, und ich frage, ob es andere Möglichkeiten gibt, oder eine Art wie "one watch", die überprüfen, ob Werte ausgewählt sind – LorenzoBerti

+0

Können Sie Ihre Frage mit dem Code aktualisieren? – Sufian

Antwort

0

Holen Sie sich die Werte des SelectedItem aus allen drei Spinnern und dann die Werte vergleichen mit Ihren gewünschten Werten, wenn sie gleich sind, dann zeigen Sie die Taste.

String text1=spinner1.getItemAtPosition(spinner.getSelectedItemPosition()).toString(); 

String text2=spinner2.getItemAtPosition(spinner.getSelectedItemPosition()).toString(); 

String text3=spinner3.getItemAtPosition(spinner.getSelectedItemPosition()).toString(); 

if(text1.equals("your desired value") && text2.equals("your desired value") && text3.equals("your desired value")) 
{ 
    button.setVisibility(View.VISIBLE); 
} 
+1

geändert || zu && –

+0

Oh yes.Thanks für das zeigen, dass – kgandroid

+0

Danke, aber das muss ich jedes Mal starten, wenn ich einen Spinner richtig auswähle? – LorenzoBerti