在java类中初始化后,android中的单选按钮不可单击
我试图在JavaAndroid应用程序中使用单选按钮。我已经声明并初始化了单选按钮,一切看起来都很完美,但当我单击单选按钮时,println控制台将不输出任何内容。下面是我的一段尝试在java类中初始化后,android中的单选按钮不可单击,java,android,Java,Android,我试图在JavaAndroid应用程序中使用单选按钮。我已经声明并初始化了单选按钮,一切看起来都很完美,但当我单击单选按钮时,println控制台将不输出任何内容。下面是我的一段尝试 单选按钮第一,第二//初始化了第一个单选按钮 //下面是在oncreate方法中调用的 first= (RadioButton) findViewById(R.id.first); second= (RadioButton) findViewById(R.id.second); //单击任何一个收音机,但什么也没
单选按钮第一,第二代码>//初始化了第一个单选按钮
//下面是在oncreate方法中调用的
first= (RadioButton) findViewById(R.id.first);
second= (RadioButton) findViewById(R.id.second);
//单击任何一个收音机,但什么也没发生
if(first.isSelected()){
System.out.println("the first is here");
}else if (second.isSelected()){
System.out.println("the second is here ");
}
请问有什么问题?我认为更好的方法是使用RadioGroup并设置侦听器
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
}
});
如果屏幕上有两个或两个以上单选按钮,请始终使用单选按钮组
为什么要使用无线组?
如果我们选中一个属于某个单选组的单选按钮,它会自动取消选中同一组中以前选中的任何单选按钮。尝试此用户组
<RadioGroup
android:id="@+id/cancle_booking_radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<RadioButton
android:id="@+id/radioBetterDeal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:buttonTint="@color/colorPrimary"
android:text="@string/found_a_better_deal" />
<RadioButton
android:id="@+id/radioDiffHotel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:buttonTint="@color/colorPrimary"
android:text="@string/want_to_book_a_differnt_hotel" />
<RadioButton
android:id="@+id/radioBookingMistake"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:buttonTint="@color/colorPrimary"
android:text="@string/booking_created_by_mistake" />
</RadioGroup>
您是否为单击/更改事件设置了单选按钮侦听器?最好对单选按钮使用setOnCheckedChangeListener
,而不是单击事件。
final RadioGroup radioGroup = (RadioGroup) cancelDialog.findViewById(R.id.cancle_booking_radio_group);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
View radioButton = radioGroup.findViewById(checkedId);
int index = radioGroup.indexOfChild(radioButton);
switch (index) {
case 0:
// radio button one selected
break;
case 1:
// radio button two selected
break;
case 2:
// radio button Three selected
break;
}
}
});