Error de anotación @Override (preferencias de Android)

Cuando estaba tratando de usar este código para habilitar las preferencias en mi aplicación

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); } } }); }; }); } } 

Se genera un error en esta línea

  public void onCheckedChanged(CompoundButton compoundButton,boolean test) { 

diciendo:

 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 

Si elimino la anotación @Override, el código no funciona y una advertencia me dice que esa parte del código no se usa localmente.

Habiendo pasado por alto a alguien y confundiéndolos, me preguntaba si podrías ayudar.

¿Hay algún escenario común que cause este error?

Pensé que podría ser mi proyecto creado

Gracias

Es una cosa de implementación. En Java 5 vs Java 6 cambiaron si se podía usar “Override” con una interfaz (¡ya que Override parece implicar que se está anulando algún tipo de comportamiento predeterminado, que no se está haciendo con una interfaz!). Si lo desea, puede buscar en las preferencias de Eclipse y cambiarlo de un error de comstackción a una advertencia de comstackción. El código dentro de la función CheckBox () me parece bien.

Sin embargo, nunca se está llamando a la función CheckBox, por lo que es de donde proviene el error ‘no usado localmente’. ¿Quería llamar a esa función desde el método OnPreferenceClick?

Puede ir a Configuración del proyecto -> Comstackdor de Java, y cambiar el nivel de cumplimiento del comstackdor a 1.6. Tengo que hacerlo cada vez que importo un proyecto existente.

Solo quería compartir, escribí una publicación basada en la información que encontré aquí. ¡Espero que sea útil!

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