我正在尝试为我的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,它显示的方法使用了我试图覆盖的格式
答案 0 :(得分:5)
您可以使用ClassName直接添加侦听器
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
}
});
例如,如果您已经使用了CompoundButton并关联了OnCheckedChangeListener,那么您将无法导入RadioGroup类,但仍然可以使用此解决方案直接访问它。
答案 1 :(得分:3)
确保您导入了正确的包import android.widget.RadioGroup.OnCheckedChangeListener;
,然后@Override
将是正确的
答案 2 :(得分:2)
我认为您导入了错误的包裹。
你应该导入
android.widget.RadioGroup.OnCheckedChangeListener
android.widget.CompoundButton.OnCheckedChangeListener