2017-01-11 4 views
1

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

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(); 
      } 
     }); 
     } 
    } 
+0

В чем ваш вопрос в точности? – W4R10CK

ответ

1

Вместо того, чтобы использовать различные кнопки радиослушателей и отправить кнопку, чтобы получить в явном виде кнопку радио нажмите, используйте RadioGroup с радиокнопками внутри него. Затем используйте 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; 
       } 
      } 
     }); 
1

На ваш взгляд 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 

    } 
});