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

Jak wybrać poprawne odpowiedzi z RadioButtonów

Object Storage Arubacloud
0 głosów
295 wizyt
pytanie zadane 23 lutego 2017 w Java przez Kubs Mądrala (5,190 p.)

Witajcie,

mam taki kod w Javie oraz dwie grupy RadioButtonów w xml, po 3 przyciski w każdej grupie.

Co teraz zrobić, żeby np. po wybraniu radiobutton2 i radiobuton4 wyświetlał się komunikat "To są poprawne odpowiedzi"?

public void OnRadioButtonClick(View view)
    {
        boolean checked = ((RadioButton) view).isChecked();

        switch (view.getId()) {
            case R.id.radioButton1:

                Toast.makeText(MainActivity.this, "1 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton2:

                Toast.makeText(MainActivity.this, "2 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton3:

                Toast.makeText(MainActivity.this, "3 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;
            case R.id.radioButton4:

                Toast.makeText(MainActivity.this, "4 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton5:

                Toast.makeText(MainActivity.this, "5 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton6:

                Toast.makeText(MainActivity.this, "6 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

        }
    }
}

 

komentarz 23 lutego 2017 przez KubenQPL Maniak (62,820 p.)
Z tego co widzę jest to Android, zmień dział na odpowiedni.

1 odpowiedź

0 głosów
odpowiedź 23 lutego 2017 przez KubenQPL Maniak (62,820 p.)
edycja 23 lutego 2017 przez KubenQPL

Możesz wcześniej zadeklarować te dwa wybrane RadioButton'y jako zmienne globalne w activity 

class MainActivity extends Activity{

RadioButton rb2;

/* 
jakieś inne rzeczy które masz w klasie
*/
 protected void onCreate(Bundle savedInstanceState){
     rb2 = (RadioButton) findViewById(R.id.radiobutton2);
}
}

A po zatwierdzeniu wprowadzonych danych przez użytkownika (czy gdzie tam chcesz sprawdzać poprawność) sprawdzasz czy oba są zaznaczone.

public void sprawdzZaznaczenie(){
    if(rb2.isChecked() && rb4.isChecked()){
        //Wypisz że wybrano poprawnie
    }
}

 

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

    
RadioButton radioButton2;
    RadioButton radioButton4;
    RadioGroup rg1,rg2;
    TextView tv;
    RadioButton btn;

    public void OnRadioButtonClick(View view) {
        boolean checked = ((RadioButton) view).isChecked();

        radioButton2 = (RadioButton) findViewById(R.id.radioButton2);
        radioButton4 = (RadioButton) findViewById(R.id.radioButton4);
        switch (view.getId()) {
            case R.id.radioButton1:

                Toast.makeText(MainActivity.this, "1 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton2:

                Toast.makeText(MainActivity.this, "2 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton3:

                Toast.makeText(MainActivity.this, "3 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;
            case R.id.radioButton4:

                Toast.makeText(MainActivity.this, "4 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton5:

                Toast.makeText(MainActivity.this, "5 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton6:

                Toast.makeText(MainActivity.this, "6 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;
        }

        btn.setOnClickListener( new View.OnClickListener() {
            public void onClick(View v) {
                if(rg1.getCheckedRadioButtonId() == R.id.radioButton2 && rg2.getCheckedRadioButtonId() == R.id.radioButton4)
                {
                    tv.setText (R.string.Odpowiedź_pozytywna);}
                else {
                    tv.setText(R.string.Odpowiedź_negatywna);}
            }

        });

    }
komentarz 25 lutego 2017 przez KubenQPL Maniak (62,820 p.)
Nie masz onCreate() a w nim setContentView();
komentarz 25 lutego 2017 przez Kubs Mądrala (5,190 p.)

Wrzuciłem jak powiedziałeś. Teraz widzę butony, ale nie mogę ani jednego zaznaczyć.

 

 RadioButton radioButton2;
    RadioButton radioButton4;
    RadioGroup rg1,rg2;
    TextView tv;
    RadioButton btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void OnRadioButtonClick(View view) {
        boolean checked = ((RadioButton) view).isChecked();

        radioButton2 = (RadioButton) findViewById(R.id.radioButton2);
        radioButton4 = (RadioButton) findViewById(R.id.radioButton4);
        switch (view.getId()) {
            case R.id.radioButton1:

                Toast.makeText(MainActivity.this, "1 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton2:

                Toast.makeText(MainActivity.this, "2 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton3:

                Toast.makeText(MainActivity.this, "3 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;
            case R.id.radioButton4:

                Toast.makeText(MainActivity.this, "4 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton5:

                Toast.makeText(MainActivity.this, "5 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;

            case R.id.radioButton6:

                Toast.makeText(MainActivity.this, "6 is selected" + String.valueOf(checked),
                        Toast.LENGTH_SHORT).show();
                break;
        }

        btn.setOnClickListener( new View.OnClickListener() {
            public void onClick(View v) {
                if(rg1.getCheckedRadioButtonId() == R.id.radioButton2 && rg2.getCheckedRadioButtonId() == R.id.radioButton4)
                {
                    tv.setText (R.string.Odpowiedź_pozytywna);}
                else {
                    tv.setText(R.string.Odpowiedź_negatywna);}
            }

        });

    }

 

komentarz 25 lutego 2017 przez KubenQPL Maniak (62,820 p.)

Spróbuj na początku onRadioButtonClick dodać setChecked(true) tak jak poniżej

public void OnRadioButtonClick(View view) {
        RadioButton rb = ((RadioButton) view);
        rb.setChecked(true);
/*
Reszta kodu
*/
}

 

komentarz 25 lutego 2017 przez Kubs Mądrala (5,190 p.)
Bez poprawy. Kod z pierwszego postu działa. Potem dodałem te zmiany i wtedy przestał działać. Coś musi być w tej części dodanej.Hmm

Podobne pytania

0 głosów
0 odpowiedzi 100 wizyt
pytanie zadane 18 stycznia 2017 w Java przez Kubs Mądrala (5,190 p.)
0 głosów
1 odpowiedź 431 wizyt
pytanie zadane 5 września 2020 w Android, Swift, Symbian przez Zaqu93 Gaduła (4,850 p.)
+1 głos
1 odpowiedź 935 wizyt
pytanie zadane 17 września 2019 w Android, Swift, Symbian przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...