#android
#Android
Вопрос:
Я пытаюсь использовать переключатели, но они не работают. На данный момент у меня есть toast исключительно для отладки, и он никогда не появляется. Кажется, есть разные способы их использования, поэтому, возможно, я просто использую плохой метод. Любой совет о том, что я сделал неправильно, был бы потрясающим.
final RadioButton rbSDR = (RadioButton) findViewById(R.id.rbSDR);
final RadioButton rbMM = (RadioButton) findViewById(R.id.rbMM);
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
//int checkedRadioButtonID = radGrp.getCheckedRadioButtonId();
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup arg0, int id) {
Toast.makeText(getBaseContext(), "Checked",
Toast.LENGTH_SHORT).show();
switch (id) {
case -1:
rbMM.setChecked(false);
rbSDR.setChecked(false);
break;
case R.id.rbSDR:
rbMM.setChecked(false);
break;
case R.id.rbMM:
rbSDR.setChecked(false);
break;
default:
break;
}
});
Редактировать:
По-видимому, проблема заключалась в том, что у меня была линейная компоновка В группе переключателей. Теперь, чтобы выяснить, как расположить кнопки рядом…
Ответ №1:
идентификатор всегда будет возвращать только -1. Попробуйте следующий отредактированный код,
final RadioButton rbSDR = (RadioButton) findViewById(R.id.rbSDR);
rbSDR.setId(R.id.rbSDR);
final RadioButton rbMM = (RadioButton) findViewById(R.id.rbMM);
rbMM.setId(R.id.rbMM);
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
//int checkedRadioButtonID = radGrp.getCheckedRadioButtonId();
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup arg0, int id) {
Toast.makeText(getBaseContext(), "Checked",
Toast.LENGTH_SHORT).show();
switch (id) {
case -1:
rbMM.setChecked(false);
rbSDR.setChecked(false);
break;
case R.id.rbSDR:
rbMM.setChecked(false);
break;
case R.id.rbMM:
rbSDR.setChecked(false);
break;
default:
break;
}
});
Ответ №2:
установите для слушателя переключатели вместо группы радио
Ответ №3:
Вместо того, чтобы использовать
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
Использование
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener(){
Ответ №4:
Чтобы поместить radio buttons
рядом, добавьте это в XML properties
:
android:orientation="horizontal"