2012-04-12 7 views
1

ich habe einen Umschaltknopf das, wenn auf die Stellung der Hinweis auf eine meiner Textview zuandroid Umschaltknopf Zustand gesetzt TexView Text

„kg“ setzt

. der anfängliche Hinweis auf die Textansicht ist

„st“

die, wenn der Knebel angezeigt werden soll in der Aus-Position ist.

wenn i startet zuerst die App, die Textview dispalys

"st"

(die auf dem ersten Ordnung ist, wie das Toggle in der Aus-Position ist) nun, wenn i den Toggle andrücken zu der Position schaltet, und zeigt

"kg"

in der textView (das ist auch ok.)

kommt jetzt das Problem. wenn ich wieder auf der Toggle-Taste (Aus-Position) bleibt die Textview als

„kg“

Wer weiß, wie ich es immer einstellen könnte, um „st im Aus-Zustand und“ kg "im Ein-Zustand.

vielen dank im Voraus

addListenerOnButton(); 

     } 

     public void addListenerOnButton() { 

     unitToggle = (Button) findViewById(R.id.unitToggle); 
     final TextView tw1 = (TextView)findViewById(R.id.tw1); 


     unitToggle.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 

       StringBuffer result = new StringBuffer(); 
       tw1.setHint("kg"); 

Antwort

1
unitToggle.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 

      StringBuffer result = new StringBuffer(); 
      if(tw1.getHint().toString().equals("kg")) 
       tw1.setHint("st");    
      else 
       tw1.setHint("kg"); 
+0

Ihnen danken. das hat funktioniert –

0

der Haupt rea Sohn für das genannte Problem ist die Logik, die noch nicht implementiert wurde.

Wenn Sie zum ersten Mal auf die Schaltfläche klicken, wird der Text auf "kg" gesetzt, der immer auf eine beliebige Anzahl von Klicks gesetzt wird. da Sie die Anweisung geschrieben haben

tw1.setHint ("kg");

innerhalb Ihrer onClick() -Methode, ohne den Status der Schaltfläche zu halten. betonte Text.

Um es korrekt zu machen, verwenden Sie ein boolesches Flag und ändern Sie seinen Status bei jedem Klick und setzen Sie den Text basierend auf dem Flag-Wert.

Der beste Weg, dies zu tun ist, ToggleButton zu verwenden, das die eingebauten An/Aus-Zustände hat, so dass Sie nicht Ihre on boolesche Flagge haben müssen und den Hinweis basierend auf dem Knopfzustand setzen müssen.

0

Versuchen

private boolean on=false; 

unitToggle.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 

      StringBuffer result = new StringBuffer(); 
      if(on){ 
       tw1.setHint("kg"); 
       on = true; 
      }else{ 
       tw1.setHint("st"); 
       on = false; 
      }