所以我有两个RadioGroups,一个用于性别,一个用于单元类型。用户必须为两个RadioGroup选择值,但第一个选定组的值会影响secont组的值。
例如,如果用户是男性并使用公制单位类型,则会向他显示一个布局。如果他是男性但使用英制单位,则会向他显示另一种布局。
我的问题是,如何在RadioButton onClick方法中使用RadioButton onClick方法?
抱歉,我不知道如何更好地解释这一点。
以下是代码:
public void dialogBodyFatMuskarciRadioButtonKliknut(View view){
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()){
case R.id.radioButtonDialogBodyFatSpolMuski:
if (checked)
public void dialogBodyFatRadioMetrickaJedinica(View view){
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()){
case R.id.radioButtonDialogBodyFatSpolMuski:
if (checked)
}
}
答案 0 :(得分:0)
没有测试过这个,但你可以实现这样的逻辑。
在你的宣言中:
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gender_RadioGroup"
<RadioButton android:id="@+id/male"
android:text="@string/male"
android:onClick="onGenderRadioButtonClicked"/>
<RadioButton android:id="@+id/female"
android:text="@string/female"
android:onClick="onGenderRadioButtonClicked"/>
</RadioGroup>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/unit_type_RadioGroup"
<RadioButton android:id="@+id/metric_unit_type"
android:text="@string/metric_unit_type"
android:onClick="onMetricRadioButtonClicked"/>
<RadioButton android:id="@+id/imperial_unit_type"
android:text="@string/imperial_unit_type"
android:onClick="onMetricRadioButtonClicked"/>
</RadioGroup>
您需要在班级中维护view_gender
和view_unit_type
的View实例。 onCreate是使用findViewById完成它的好地方。
protected void onCreate(Bundle savedInstanceState) {
view_gender = (RadioGroup) findViewById(R.id.gender_RadioGroup);
view_unit_type = (RadioGroup) findViewById(R.id.unit_type_RadioGroup);
}
public void onGenderRadioButtonClicked(View view) {
if(((RadioButton) view).isChecked())
chooseLayout(view, view_unit_type );
}
public void onMetricRadioButtonClicked(View view) {
if(((RadioButton) view).isChecked())
chooseLayout(view_gender, view);
}
public void chooseLayout(View View1, View View2){
if (View1.getId()==R.id.male && View2.getId()==R.id.metric_unit_type)
// show male metric type layout
else if (View1.getId()==R.id.male && View2.getId()==R.id.imperial_unit_type)
// show male imperial type layout
else if (View1.getId()==R.id.female && View2.getId()==R.id.metric_unit_type)
// show female metric type layout
else
// show female imperial type layout
}