2016-01-17 4 views
1

Это мое кодирование. Я не знаю, как проверить радиокнопку. Когда я нажимаю на следующую кнопку, она все равно может продолжаться, даже если переключатель не нажат. Извините за мой плохой английский. Пожалуйста, помогите мне. Спасибо.Как проверить переключатель в андроиде?

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_dengue_ques2); 

    radioGroup = (RadioGroup) findViewById(R.id.radioGroupDengue2); 
    yes2 = (RadioButton) findViewById(R.id.radioButtonQues2); //the answer is yes 
    no2 = (RadioButton) findViewById(R.id.radioButtonQues2No); //the answer is no 

    Next=(Button) findViewById(R.id.buttonNextQues2); 

    yes2.setSelected(true); 
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(RadioGroup radioGroup, int i) { 
      if (i == R.id.radioButtonQues2) 
      { 
       selectedType = yes2.getText().toString(); 
      } 
      else if (i == R.id.radioButtonQues2No) 
      { 
       selectedType = no2.getText().toString(); 
      } 
      /* this part does not work 
      else if (i == R.id.radioButtonQues2.isChecked(false) && 
        i == R.id.radioButtonQues2No.isChecked(false)) 
      { 
      Toast.makeText(this, "Please choose 1 answer", 
            Toast.LENGTH_SHORT).show(); 
      }*/ 
     } 
    }); 

    Next.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Intent intent = new Intent(dengueQues2.this, dengueQues3.class); 
      intent.putExtra("REST2", selectedType); 
      startActivity(intent); 
     } 
    }); 
} 

    public void onClickYes2 (View view) 
    { 
     Toast.makeText(this, "You have select 1 to 3 days.",Toast.LENGTH_SHORT).show(); 
    } 

    public void onClickNo2 (View view) 
    { 
     Toast.makeText(this, "You have select 3 to 14 days.", Toast.LENGTH_SHORT).show(); 
    } 
+0

Поскольку вы по умолчанию 'yes2' на выбранный не вы по умолчанию ваш' 'selectedType' в yes2.getText() ToString() '? –

+0

Я уже меняю его на yes2.getText(). ToString(); но он все еще не работает. – NANH

+0

Являются ли радиокнопки внутри группы радио в вашем файле макета? Поскольку у вас есть yes2.setSelected (true); 'в вашем методе' onCreate' один из двух переключателей всегда должен отображаться как выбранный при запуске приложения. Это так? –

ответ

0

Вы нужно использовать setChecked() метод не метод setSelected() по переключателю.

Также вам необходимо по умолчанию selectedType = yes2.getText().toString();, так как вы устанавливаете это значение по умолчанию в onCreate().

yes2.setChecked(true); 
selectedType = yes2.getText().toString(); 

EDIT, показывающий, как использовать выбор по умолчанию: нет.

Next.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if(yes2.isChecked() || no2.isChecked()) { 
      Intent intent = new Intent(dengueQues2.this, dengueQues3.class); 
      intent.putExtra("REST2", selectedType); 
      startActivity(intent); 
     } else { 
      Toast.makeText(this, "Please choose 1 answer", 
          Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 
Смежные вопросы