当我尝试使用此代码在我的应用中启用偏好设置时
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.Preference.OnPreferenceClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.Toast;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class Preferences extends PreferenceActivity {
private RadioButton btn01;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
btn01 = (RadioButton)findViewById(R.id.RadioButton01);
Preference customPref = (Preference) findPreference("customPref");
customPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getBaseContext(),"The Custom Preference Has Been Clicked",Toast.LENGTH_LONG).show();
SharedPreferences customSharedPreference = getSharedPreferences("myCutomSharedPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = customSharedPreference.edit();
editor.putString("myCustomPref","The preference has been clicked");
editor.commit();
return true;
}
public void CheckBox() {
final CheckBox ThisCheckBox = (CheckBox) findViewById (R.id.checkboxPref);
ThisCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton compoundButton,boolean test) {
if (ThisCheckBox.isChecked()){
btn01.setVisibility(0);
} else {
btn01.setVisibility(2);
}
}
});
};
});
}
}
此行生成错误
public void onCheckedChanged(CompoundButton compoundButton,boolean test) {
话说:
Multiple markers at this line
- The method onCheckedChanged(CompoundButton, boolean) of type new
CompoundButton.OnCheckedChangeListener(){} must override a superclass method
- implements
android.widget.CompoundButton.OnCheckedChangeListener.onCheckedChanged
如果我删除@Override注释,则代码不起作用,并且警告告诉我代码的那一部分未在本地使用。
跑过这个人并且困惑他们,我想知道你是否可以帮忙?
是否存在导致此错误的常见情况?
我认为这可能是我的项目设置
谢谢
答案 0 :(得分:49)
您可以转到项目设置 - > Java编译器,并将编译器合规性级别切换为1.6。每次导入现有项目时我都必须这样做。
答案 1 :(得分:18)
这是一个实现的事情。在Java 5 vs Java 6中,他们改变了你是否可以在接口上使用“覆盖”(因为Override似乎意味着你要覆盖某种默认行为,而你没有使用接口!)。如果您愿意,可以在Eclipse首选项中进行搜索,并将其从编译错误更改为编译警告。你在CheckBox()函数里面的代码看起来很好。
但是,您永远不会调用CheckBox函数,因此“本地未使用”错误来自于此。你是否想在OnPreferenceClick方法中调用该函数?
答案 2 :(得分:5)
只是想分享, 我根据我在这里找到的信息写了一篇文章。我希望它有用!