проверь состояние радио кнопки андроид и посчитай ответы - PullRequest
1 голос
/ 03 июня 2011

Я отредактировал код так, как @CommonsWare сказал мне, что когда я пытаюсь нажать r1, я получаю принудительное закрытие, и проблема в том, что кнопка [i] .isChecked () не работает -> исправлено

У меня есть final RadioButton[] buttons = {r1,r3,r5,r7};

И я хочу посчитать их (в основном да ответы)

public void onClick(View view){


    checkStates(buttons);}
}
private void  checkStates(RadioButton[] buttons) { 
     for (int i = 0; i < 4; i++) {
        if (buttons[i].isChecked())

             yes++;}
     if (yes>=3){
      Intent intent=new Intent(this,AnotherClass.class);
        startActivity(intent);
  }

  }

В основном у меня есть переключатели да и нет.Я хочу посчитать ответы «да», и если пользователь передумает и проверит «нет», чтобы уменьшить «да»

r1 r3 r5 и т. Д. - «да», ответы r2 r4 r6 - «нет» ответов

Myподход может быть неправильным, так как я новичок в этом, но если кто-то поможет мне, я опубликую все это, чтобы люди могли его увидеть.

Пожалуйста, помогите!

Хорошо, я проверил журнал cat ия получаю следующую ошибку (было очевидно, где, но я не знаю, почему и как я могу реализовать это для работы)

Android Runtime:  Uncaught handler :thread main exiting due to uncaught exception

java.lang.NullPointerException  
RadioButtons.checkStates(RadioButtons.java:49) --> here  : if (buttons[i].isChecked()) 
RadioButtons.onClick(RadioButtons.java:42)--> here:    checkStates(buttons);

Редактировать: Проблема - как указал @CommonsWare - заключалась в том, что buttons не было инициализировано, и я получил NullPointerException Так что я изменил код ранее с этим: RadioButton[]buttons =new RadioButton[3]; дал размер массива

 public void onClick(View view){
checkStates(buttons);
      }
private void  checkStates(RadioButton[] buttons) { 
        buttons[0]=rb1;
        buttons[1]=rb3;
        buttons[2]=rb5;

        if (buttons[i].isChecked()){

               yes++;}
           tv.setText("Result:"+yes);

    }

На этот раз проблема в том, что он все еще считаетщелкает, а не отвечает «да» У меня есть следующие проблемы, которые нужно решить

  • считать ответы «да» да ++

  • Если пользователь нажимаетвторой раз не в счет

  • Если пользователь передумаетот «да» до «нет» декремент «да»

  • Если пользователь нажимает «нет», ничего не считать (важная часть моего приложения - подсчет ответов «да»)

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Как проверить состояние радио кнопки в андроиде?

Звоните isChecked(). Но вы уже знали это.

И я хочу их посчитать

Нет смысла вызывать setChecked(true) для RadioButton, который возвращает true из isChecked(), так как этот RadioButton уже проверен.

Я хочу посчитать ответы «да», и если пользователь передумает и проверит «нет», чтобы уменьшить «да»

Замените // if r1 or r3 are checked{ на if buttons[i].isChecked() {

0 голосов
/ 03 июня 2011

Сначала вам нужно использовать RadioGroup для группировки каждой пары «Да» и «Нет», чтобы нельзя было одновременно выбирать Обе.

Вот отличный стартовый ресурс http://developer.android.com/resources/tutorials/views/hello-formstuff.html#RadioButtons

Прочтите эту страницу, и на все ваши вопросы будут даны ответы, включая инструкции по настройке OnClickListener

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...