@Override注释错误(android prefs)

当我试图使用此代码来启用首选项到我的应用程序

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注解,然后代码不起作用,警告告诉我,该部分的代码是不是本地使用。

经历了这个过去的人,让他们困惑,我想知道你能帮忙吗?

有没有导致这个错误的常见情况?

我认为这可能是我的项目build立

谢谢

Solutions Collecting From Web of "@Override注释错误(android prefs)"

这是一个实施的事情。 在Java 5和Java 6中,他们改变了是否可以在接口上使用“Override”(因为Override似乎意味着你正在重写某种默认行为,而你并没有使用接口!)。 如果您愿意,可以在Eclipse首选项中进行search,并将其从编译错误更改为编译警告。 你在CheckBox()函数里面的代码对我来说看起来很好。

但是,您永远不会调用CheckBox函数,所以这就是“本地未使用”错误的来源。 你是否有意从OnPreferenceClick方法中调用该函数?

您可以转到项目设置 – > Java编译器,并将编译器合规性级别切换到1.6。 每次我导入一个现有的项目,我都必须这样做。

只是想分享,我根据我在这里find的信息写了一篇文章。 我希望这是有帮助的!

http://qtcstation.com/2011/05/android-and-jdk-compliance/