Java 错误:OnCheckedChangeListener无法解析为类型
我在setOnCheckdChangeListener和onCheckdChangeListener下面有红线。错误消息告诉我:此行有多个标记-OnCheckedChangedListener无法解析为类型-类型RadioGroup中的方法setOnCheckedChangedListenerRadioGroup.OnCheckedChangeListener不适用于参数new OnCheckedChangeListener{}Java 错误:OnCheckedChangeListener无法解析为类型,java,android,radio-button,radio-group,Java,Android,Radio Button,Radio Group,我在setOnCheckdChangeListener和onCheckdChangeListener下面有红线。错误消息告诉我:此行有多个标记-OnCheckedChangedListener无法解析为类型-类型RadioGroup中的方法setOnCheckedChangedListenerRadioGroup.OnCheckedChangeListener不适用于参数new OnCheckedChangeListener{} package com.lifematters; import
package com.lifematters;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class Test1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test1);
//define Navigation Image Buttons
final Button nextBtn = (Button) findViewById(R.id.btnNext);
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioAnswers1);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged (RadioGroup group, int checkedId){
final RadioButton radioButton1 = (RadioButton) findViewById(R.id.radioA1);
final RadioButton radioButton2 = (RadioButton) findViewById(R.id.radioA2);
final RadioButton radioButton3 = (RadioButton) findViewById(R.id.radioA3);
final RadioButton radioButton4 = (RadioButton) findViewById(R.id.radioA4);
if (radioButton1.isChecked()) {
DisplayToast("No, not at all");
} else if (radioButton2.isChecked()) {
DisplayToast("On some days");
}else if (radioButton3.isChecked()) {
DisplayToast("On more than half the days");
}else {
DisplayToast("Nearly everyday");
}
}
});
}
}
两种可能性:
更改为RadioGroup.OnCheckedChangeListener
将以下内容添加到课程的开头:
import android.widget.RadioGroup.OnCheckedChangeListener;
对于DisplayToast,添加以下内容:
public void displayToast(String text){
Toast.makeText(this, text, Toast.Toast.LENGTH_SHORT).show();
}
并在代码中将DisplayToast更改为DisplayToast。按照惯例,方法名称应以小写字母开头。只有类名应该以大写字母开头。您需要导入
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
导入这两个类/接口
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
此代码可能有助于更改OnChacked
//buttonView.getId用于获取Button的ID
//是否选中按钮时使用布尔值isChecked
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
switch (buttonView.getId()) {
case R.id.radioA1:
DisplayToast("No, not at all");
radioA2.setChecked(false);
break;
case R.id.radioA2:
DisplayToast("On some days")
radioA1.setChecked(false);
break;
.....
.....
default:
break;
}
}
}
我也遇到了同样的问题,并通过以下方式解决: 换衣服
.setOnCheckedChangeListener(new OnCheckedChangeListener(){...
到
它会起作用的 按ctrl+shift+o在eclipse中导入类..解决了问题,谢谢:。现在我得到了DisplayToast的错误?对于类型new RadioGroup,DisplayToastString方法未定义。一旦选中ChangeListener{},您似乎从某个地方复制了代码,并留下了一些部分。请看我编辑的答案。非常感谢,您在那里吃了两次吐司,但我解决了问题,谢谢:
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){...