【问题标题】:I can't create an onCheckedChanged listener for my RadioGroup我无法为我的 RadioGroup 创建 onCheckedChanged 侦听器
【发布时间】:2013-11-08 09:11:08
【问题描述】:

我正在尝试为我的 RadioGroup 创建一个 onCheckedChanged 侦听器,但 Eclipse 正在向我抛出错误。这是代码

rg = (RadioGroup) findViewById(R.id.radioGroup1);

rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        Log.d("chk", "id" + checkedId);

        if (checkedId == R.id.switchToFriends) {
            // some code
        } else if (checkedId == R.id.switchToUsers) {
            // some code
        }
    }
});

从 Eclipse 中,我在 setOnCheckedChangeListener 上收到一个错误,建议将其更改为 setOnClickListener/setOnDragListener 等。
new OnCheckedChangeListener() 上,它告诉我添加未实现的方法,当我选择该选项时,它会添加:

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    // TODO Auto-generated method stub

}

所以我最终得到了这个:

rg = (RadioGroup) findViewById(R.id.radioGroup1);

rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        Log.d("chk", "id" + checkedId);

        if (checkedId == R.id.switchToFriends) {
            // some code
        } else if (checkedId == R.id.switchToUsers) {
            // some code
        }
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        // TODO Auto-generated method stub

    }
});

它告诉我从我编写的方法中删除 @Override 注释。
任何人都知道为什么它不会让我以这种方式覆盖该方法?我检查了android docs,它在那里显示的方法使用了我尝试覆盖的格式

【问题讨论】:

    标签: java android eclipse radio-group


    【解决方案1】:

    您可以直接添加带有ClassName的监听器

     radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
    
            }
        });
    

    例如,如果您已经在使用 CompoundButton 和关联的 OnCheckedChangeListener,您将无法导入 RadioGroup 类,但仍可以使用此解决方案直接访问它。

    【讨论】:

      【解决方案2】:

      确保您导入了正确的包import android.widget.RadioGroup.OnCheckedChangeListener;,然后@Override 将是正确的

      【讨论】:

      • 谢谢,我不知道有不同的进口。我只是从我找到的一些帖子中复制了代码。
      • 我也遇到过这个错误。所以确保你得到正确的进口是很重要的。还要检查 android API
      【解决方案3】:

      我认为你导入了错误的包。

      你应该导入 android.widget.RadioGroup.OnCheckedChangeListener

      而不是 android.widget.CompoundButton.OnCheckedChangeListener

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多