我在项目的布局中添加了一个单选按钮组,在这个布局的片段上我做了一个监听器(我使用绑定)。 “radioDen”是我的单选按钮组名称:
mBinding.radioDen.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
switch(checkedId) {
case R.id.radio_den_circle:
mBinding.setDiameterVisibility(true);
mBinding.setHeightVisibility(false);
mBinding.setWidthVisibility(false);
break;
case R.id.radio_den_none:
mBinding.setDiameterVisibility(false);
mBinding.setHeightVisibility(false);
mBinding.setWidthVisibility(false);
break;
case R.id.radio_den_rectangle:
mBinding.setDiameterVisibility(false);
mBinding.setHeightVisibility(true);
mBinding.setWidthVisibility(true);
break;
}
}
});
但是当我选择其中一个单选按钮时 - 项目会掉落,即使它听到了正确的地方。当我查看单选按钮-android开发人员时,我发现我必须调用活动
public void onRadioButtonClicked(View view) {
}
所以我只是在没有任何代码的情况下添加它,现在它不会再出现了,它会像以前一样继续传播到片段中的监听器。
这个问题是什么原因造成的?这是Android的错误吗?你知道另一个解决方案吗?这样离开它真是荒谬......
我现在检查了一下,我从主要活动中删除了该功能,但我确实收到了致命错误:
致命的例外:主要
java.lang.IllegalStateException:无法在父级或祖先语句中找到onRadioButtonClicked(View)方法。在视图类android.support.v7.widget.AppCompatRadioButton上定义的android:onClick属性,其id为'radio_den_rectangle'“
答案 0 :(得分:0)
@Lakshay你帮我找到了答案, 问题是在XML中我有OnClick引用:
<RadioButton android:id="@+id/radio_den_circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/den_circle"
android:onClick="onRadioButtonClicked"
android:padding="5dp"
android:layout_marginEnd="10dp"
android:textSize="18dp"
android:buttonTint="?attr/colorAccent"/>
我刚删除它,它也可以正常工作!
非常感谢!!