android - 将 @OnCheckedChanged (ButterKnife) 与 radioGroup 一起使用会在 android 中出现错误

标签 android butterknife android-radiogroup oncheckedchanged

我最近在我的 android 项目中集成了 butterknife,现在我正在尝试为 radiogroup 使用 @OnCheckedChanged 注释。但得到不给回调的错误。那么调用和获取 checkedId 的正确方法是什么,或者这个方法仅适用于单选按钮而不适用于单选组。

@OnCheckedChanged(R.id.gendergroupid)
void onGenderSelected(RadioGroup group, int checkedId){
    switch(checkedId){
        case R.id.maleid:
            maleid.setEnabled(true);
            maleid.setChecked(true);
            break;
        case R.id.femaleid:
            femaleid.setEnabled(true);
            femaleid.setChecked(true);
            break;
        case R.id.bothid:
            bothid.setEnabled(true);
            bothid.setChecked(true);
            break;
    }
}

给我错误

BloError:(89, 10) error: Unable to match @OnCheckedChanged method arguments.

参数#1:android.widget.RadioGroup 没有匹配任何监听器参数

参数#2:整数 没有匹配任何监听器参数

方法最多可以有 2 个参数:

android.widget.CompoundButton bool 值

这些可以按任何顺序列出,但将从上到下搜索。ckquote

最佳答案

根据规范,这个注解需要和2个参数一起使用,一个CompoundButton和一个boolean,所以如果你真的想使用这个监听器,你必须像这样改变它:

@OnCheckedChanged(R.id.gendergroupid)
void onGenderSelected(CompoundButton button, boolean checked) {
   //do your stuff.
}

我认为在你的情况下这个监听器不起作用,所以你可以使用另一个实现,比如:

@OnClick({R.id.radio_1, R.id.radio_2}) 
public void onRadioButtonClicked(RadioButton radioButton) {
    // Is the button now checked?
    boolean checked = radioButton.isChecked();

    // Check which radio button was clicked
    switch (radioButton.getId()) {
      case R.id.radio_1:
        if (checked) {
          // 1 clicked
        }
        break;
      case R.id.radio_2:
        if (checked) {
          // 2 clicked
        }
        break;
    }
}

关于android - 将 @OnCheckedChanged (ButterKnife) 与 radioGroup 一起使用会在 android 中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43869810/

相关文章:

Android 小部件滚动

android - 努力获取相同的 ViewModel 实例

android - 获取 Instagram 快拍 Json

java - Butterknife fragment 旋转给出 NullPointer

java - 如何删除注入(inject)的 View ?

android - 单个单选组中水平和垂直方向的单选按钮

java - Android 图像按钮 从自定义 ListView 拨号/调用 错误并出现 NullPointerException

在 fragment 中使用 Butterknife 时出现 java.lang.NullPointerException

android - 单击该 ListItem 中的 RadioButton 时获取 ListItem id/位置。

java - RadioButtonGroup 没有出现