• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak odznaczyć RadioButton?

VPS Starter Arubacloud
0 głosów
1,613 wizyt
pytanie zadane 12 lutego 2017 w Java przez Kubs Mądrala (5,190 p.)
Witam serdecznie,

użyłem RadioButtons w grupie RadioGroup w xml. Wszystko działa. Co mogę dopisać w Javie, żeby można było odznaczyć zaznaczony RadioButton poprzez naciśnięcie na niego raz jeszcze lub naciśnięcie gdziekolwiek na ekranie (jeśli taka opcja w ogóle istnieje)?

Z góry dziękuje za wszelkie info.
komentarz 12 lutego 2017 przez Adrian Spora Mądrala (5,100 p.)
Ok, ale jakiego Frameworka używasz? Swing, JavaFX?

2 odpowiedzi

0 głosów
odpowiedź 12 lutego 2017 przez Barus Stary wyjadacz (14,120 p.)
Witaj

Co prawda nie programuję w Javie, ale w C# (w WPF i Windows Forms) radioButton zawsze musi być zaznaczony. Polega to na tym, że jeśli masz w formularzu np. 5 takich radioButton'ów to tylko jeden z nich może być zaznaczony. Ty jak pisałeś posiadasz tylko jeden, dlatego nie możesz go odznaczyć. Spróbuj użyć checkBox'a, jego możesz zaznaczać i odznaczać jak Ci się podoba.
I jeszcze raz zaznaczam, że nie programuję w Javie, więc jeśli jest tam coś inaczej to przepraszam.

Pozdrawiam!
komentarz 12 lutego 2017 przez Kubs Mądrala (5,190 p.)
Dzięki za info.

Dokładnie mam trzy RadioButtony w klasie RadioGroup. Wiem, że jest możliwe odznaczenie RadioButtona (chociaż z założenia metoda ta ma mieć jeden zaznaczony zawsze), ale moje małe doświadczenie nie podpowiada mi nic :)

Może ktoś jeszcze się wypowie.

Dzięki raz jeszcze i pozdrawiam.
komentarz 12 lutego 2017 przez Barus Stary wyjadacz (14,120 p.)
Szukałeś może na anglojęzycznych forach/stronach? Możliwe, że ktoś miał podobny problem.
komentarz 12 lutego 2017 przez Kubs Mądrala (5,190 p.)

Szukałem tyle, że ja mam kod switch-case  i jeśli cokolwiek skopiuje pojawiają się błędy. Między innymi znalazłem z wykorzystaniem 'ToggleableRadioButton' i szperam na razie co to w ogóle jest.. (gdy zaimplementuje go do Javy nazwa ta świeci się na szaro, więc muszę też nadrobić wiedzę w tą stronę).

0 głosów
odpowiedź 12 lutego 2017 przez Adrian Spora Mądrala (5,100 p.)

To może zależeć od konkretnego Frameworka. W zależności czy używasz Swing czy JavaFX, rozwiązania mogą być różne, ale podejrzewam, że wcale tak nie jest. W przypadku Swinga:

http://stackoverflow.com/questions/2408689/unselecting-radiobuttons-in-java-swing

From the API doc of class ButtonGroup:
Initially, all buttons in the group are unselected. Once any button is selected, one button is always selected in the group.There is no way to turn a button programmatically to "off", in order to clear the button group. To give the appearance of "none selected", add an invisible radio button to the group and then programmatically select that button to turn off all the displayed radio buttons.

Tzn. domyślnie nie jest nic wybrane. Jeśli pierwszy raz coś wybierzesz to już nie można tego cofnąć i na stałe musi byc wybrany 1 RadioButton w ButtonGroup'ie. Jest jedno obejście, można po prostu do ButtonGroup'y dodać dodatkowy przycisk, który nie będzie widoczny dla użytkownika i go wybrać. Wtedy użytkownik będzie miał wrażenie, że nic nie jest wybrane. Tak mozesz zrobic w każdym frameworku :)

komentarz 12 lutego 2017 przez Kubs Mądrala (5,190 p.)

Dzięki Adrian,

poczytam co i jak z tym..

Zerknij proszę na to, użytkownik 'spaaaarky21'

http://stackoverflow.com/questions/15836789/android-radio-button-uncheck

Co o tym sądzisz?

komentarz 12 lutego 2017 przez Adrian Spora Mądrala (5,100 p.)
No wydaje się być ok. Dawna już nic z Androidem nie robiłem, ale skoro ma 10 łapek w górę i jest zaznaczone jako rozwiązanie problemu to powinno działać. Sam sprawdź. Chodzi w tym oto, że za każdym razem gdy użytkownik kliknie w ten RadioButton to wywoła się metoda toggle i stan przycisku (to czy jest zaznaczony czy nie) zostanie zmieniony na przeciwny.

Tyle, że to jest rozwiązanie na Androida. Piszesz apkę na Androida czy desktopową?
komentarz 12 lutego 2017 przez Kubs Mądrala (5,190 p.)

Na Androida, pierwszą :) i na razie z małą wiedzą o programowaniu w Javie. Stworzyłem tego Buttona w xml z id 'radio0'  i w Javie napisałem kod, ale gdy wrzucam go w onCreate to nie działa

RadioButton myRadioButton = (RadioButton) findViewById(R.id.radio0);
        myRadioButton.setVisibility(View.INVISIBLE);

Doradzisz cos? :)

komentarz 12 lutego 2017 przez Adrian Spora Mądrala (5,100 p.)
Nie działa, tzn? Nie wyświetla się? Powinien się nie wyświetlać, bo tak ustawiłeś. To jest ten customowy RadioButton? Inne niecustomowe kontrolki działają przy analogicznym postępowaniu?
komentarz 12 lutego 2017 przez Kubs Mądrala (5,190 p.)
edycja 12 lutego 2017 przez Kubs
 <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton4"
        android:visibility="invisible"/>

to mam w xml'u jako czwarty RadioButton.

Wszystko działa ( RadioButonny po kolei można zaznaczać ). A gdy dodam kod z poprzedniego postu do Javy nie następują żadne zmiany. Może trzeba wpisać go gdzieś indziej niż w metodę onCreate?

 

 

 

komentarz 12 lutego 2017 przez Adrian Spora Mądrala (5,100 p.)
Bo visibility jest ustawione na invisible, czyli niewidoczny. Nie widać tego domyślnie.
komentarz 12 lutego 2017 przez Kubs Mądrala (5,190 p.)
edycja 12 lutego 2017 przez Kubs
Czyli ustawiłem w xml na 'visible' i to samo w kodzie Javy. Yyyy...chyba coś błądzę bo wszystko po staremu, bez żadnych zmian.

Nie będzie widać tego Buttonu ale i nie można odkliknąć zaznaczonego wyboru - zresetować zmiany i powrócić do stanu sprzed zaznaczenia.

Ok, czyli w xml jest 'invisible' a w Javie jest 'visible' - widać ten przycisk jako czwarty i naciśnięcie go resetuje te powyżej. Czy na tym ma to polegać? Chciałbym żeby nie było widać tego przycisku a jednocześnie żeby następował reset buttonów.

Podobne pytania

0 głosów
1 odpowiedź 689 wizyt
pytanie zadane 24 maja 2017 w Java przez Ring Początkujący (330 p.)
0 głosów
0 odpowiedzi 145 wizyt
pytanie zadane 14 lutego 2017 w Java przez Kubs Mądrala (5,190 p.)
+1 głos
0 odpowiedzi 57 wizyt
pytanie zadane 21 marca w C# przez Mati336 Użytkownik (560 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...