Я начинаю программировать на Android и пытаюсь создать простую программу, которая преобразует дюймы в футы и доллары США в японскую иену. У меня есть следующие две группы радио в моем main_activity.xml файле:Проверить идентификатор кнопки радио, когда есть две группы радиосвязи
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/distanceInput"
android:layout_below="@+id/distanceInput"
android:layout_marginTop="10dp" >
<RadioButton
android:id="@+id/inch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:checked="true"
android:onClick="handleClickOne"
android:text="Inches" />
<RadioButton
android:id="@+id/foot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/currencyInput"
android:layout_below="@+id/radioGroup1"
android:onClick="handleClickOne"
android:text="Feet" />
</RadioGroup>
<RadioGroup
android:id="@+id/radioGroup2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/currencyInput"
android:layout_below="@+id/currencyInput"
android:layout_marginTop="10dp" >
<RadioButton
android:id="@+id/japan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioGroup2"
android:layout_centerVertical="true"
android:checked="true"
android:text="JPY"
android:onClick="handleClickTwo"
/>
<RadioButton
android:id="@+id/usdollar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/euro"
android:layout_below="@+id/euro"
android:text="US Dollars"
android:onClick="handleClickTwo"
/>
</RadioGroup>
Этот следующий код для() метод моей handleClickOne, который проверяет, какая кнопка радио выбрана между дюймами и футами, но петля переключатель регистра всегда падает на случае по умолчанию - Интересно, почему:
public void handleClickOne(View view) {
DecimalFormat df = new DecimalFormat("#.##");
boolean checked = ((RadioButton) view).isChecked();
EditText distance = (EditText) findViewById(R.id.distanceInput);
double distanceInput = parseStringToDouble(distance.getText().toString());
switch(view.getId()) {
case R.id.foot:
// convert inches to feet
if (checked) {
distance.setText(df.format(inchToFoot(distanceInput)));
}
break;
case R.id.inch:
//convert feet to inches
if (checked) {
distance.setText(df.format(footToInch(distanceInput)));
}
break;
default:
distance.setText("000");
break;
}
}
Мой вопрос, нужен ли я выбрать радиокнопку в радио группе? и если да, то как?
Возможно ли, что щелчок, возможно, зарегистрирован в RadioGroup (id radioGroup1), а не на дочерние? – stkent
Я не уверен, что понимаю вас, но у меня есть эта строка в моем переключателе: android: onClick = "handleClickOne", означает ли это, что я зарегистрировал обработчик кликов на переключателе? – TonyGW
Добавить оператор журнала (или точку останова) в вашем случае по умолчанию, чтобы проверить идентификатор передаваемого представления. Это должно помочь выяснить, почему удаляется случай по умолчанию, а не R.id.foot или R.id . – stkent