Wpis z mikrobloga

Mam dosyć dziwny problem. W zależności od ustawienia switcha chcę aby tekst był albo wyśrodkowany, albo przylegał do lewej krawędzi ekranu. Metodę która jest za to odpowiedzialna wywołuję zarówno w listenerze switcha jak i buttona. Problem jest taki, że kiedy zmieniam switcha i wywołuję metodę, dzieje się akcja odwrotna do zaplanowanej. To znaczy, gdy switch jest w pozycji ON chcę mieć tekst z lewej strony, gdy jest w pozycji OFF, tekst ma być na środku.
Tutaj okrojony kod http://pastebin.com/VM9KkJGu

Linia 17. wywołuje metodę przy zmianie switcha, w 26. przy kliknięciu w przycisk. Całość dzieje się w linii 48.
Czyli, kiedy klikam w switcha zmieniając go do pozycji ON tekst ustawia się po środku, nie tak jak to zaprogramowałem. Jeśli teraz nacisnę button, tekst ruszy do lewej strony, tak jak powinien. Jeśli wcisnę switcha i zmienię go do pozycji OFF, tekst schodzi na lewą stronę, odwrotnie niż zaprogramowałem. Jeśli wcisnę teraz buttona to tekst prawidłowo się wyśrodkuje...

O co chodzi?

#androiddev #java
  • 4
  • Odpowiedz
@Matt23: pewnie wykonując metodę onCheckedChanged() toggle.isChecked() ma dalej stary status a dopiero zmienna isChecked z w/w metody ma nowy status i to jej powinieneś użyć to ustalenia statusu switcha.. Nie jestem pewny, tak tylko mi się wydaje... sprawdź :P
  • Odpowiedz