Когда я выбираю переключатель, он должен отправить ответ и одновременно открыть следующее действие. Как я могу это сделать?

Я пытаюсь сделать простое приложение-викторину с множественным выбором. Когда я выбираю переключатель, переключатель должен отправить ответ и открыть следующее действие. В моем коде есть кнопка "отправить". Поэтому сначала выберите переключатель, затем нажмите кнопку отправки и перетащите страницу, чтобы открыть другую страницу, но это бесполезно. Я хочу сделать все из них, просто выберите переключатель.

 public class Question1 extends Fragment {
     RadioButton q1a2;
     Button btn1;

     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
         View v = inflater.inflate(R.layout.fragment_question1, null);
         return v;
     }

     public void onActivityCreated(Bundle savedInstanceState){
         super.onActivityCreated(savedInstanceState);
         q1a2 = (RadioButton)getView().findViewById(R.id.q1a2);
         btn1 =(Button)getView().findViewById(R.id.btn1);

         final SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
         btn1.setOnClickListener(new OnClickListener() {

             @Override
             public void onClick(View v) {
                 SharedPreferences.Editor editor = app_preferences.edit();
                 if(q1a2.isChecked()){
                     editor.putInt("answer_value", 1);
                 }else{
                     editor.putInt("answer_value", 0);
                 }

                 editor.commit();
             }
         });
      }
  }

person cengavera    schedule 11.01.2017    source источник
comment
В чем именно заключается ваш вопрос?   -  person W4R10CK    schedule 11.01.2017


Ответы (2)


Вместо того, чтобы использовать разные прослушиватели радиокнопок и кнопку отправки, чтобы явно получить щелчок по радиокнопке, используйте радиогруппу с радиокнопками внутри нее. Затем используйте RadioGroup.OnCheckedChangeListener, чтобы получить идентификатор нажатой кнопки-переключателя, и тем же методом вы можете начать новое действие.

Пример кода ниже:

RadioGroup radio = (RadioGroup) dialog.findViewById(R.id.radioGroup1);
        radio.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {

                View radioButton = radio.findViewById(checkedId);
                int index = radio.indexOfChild(radioButton);

                switch (index) {
                case 0: // first button
                        break;
                case 1: // second button
                        break;
                    case 3: // third button
                        break;
                    case 4: // fourth button
                        break;
                }
            }
        }); 
person Akanksha Hegde    schedule 11.01.2017

В вашем представлении xml у вас должна быть RadioGroup, в которой существует ваш RadioButton.

RadioGroup yourRadioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);        
yourRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // Here you can find selected radio button Id.
        // On the basis of Radio Button you can decide it is selected or not

    }
});
person Rahul    schedule 11.01.2017