@Override anotación de error (android pref.)

Cuando yo estaba tratando de utilizar este código para habilitar las preferencias en mi app

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 puedo quitar el @Override anotación, a continuación, el código no funciona y una advertencia que me dice que el que parte del código no se utiliza localmente.

De haber corrido esta en el pasado de alguien y desconcertante de ellos me preguntaba si usted podría ayudar?

Hay escenarios comunes que provoca este error?

Pensé que podría ser mi proyecto

Gracias

InformationsquelleAutor Jack | 2011-01-21

3 Kommentare

  1. 18

    Es una implementación cosa. En Java 5 vs Java 6 cambiaron ya sea que usted podría utilizar para «Reemplazar» con una interfaz (ya Sobrepaso parece implicar que va a reemplazar algún tipo de comportamiento predeterminado, que no estás haciendo con una interfaz!). Si usted lo desea, puede buscar en el Eclipse de las preferencias y el cambio de un error de compilación para una compilación de advertencia. El código dentro de la Casilla de verificación() la función se ve bien para mí.

    Sin embargo, nunca llamar a la Casilla de verificación de la función, así que ahí es donde el ‘no se utiliza localmente» error viene. Fueron un significado para llamar a esa función desde dentro de la OnPreferenceClick método?

    • WOW man! muchas gracias. Ok, a continuación, cómo y dónde estoy yo para llamar la casilla de verificación método si es para ser utilizado a nivel local?
    • Desde el interior de la onPreferenceClick método es una manera de hacer eso. Después de editor.commit() añadir una llamada a la Casilla();
    • Sólo tiene que modificar 1.5 a 1.6 en su YourProject->click derecho->Propiedades->Compilador de Java->1.5, 1.6. Aplicar y Sí para reconstruir.
  2. 49

    Usted puede ir a la configuración del Proyecto –> Compilador de Java, y cambiar el compilador nivel de cumplimiento a 1.6. Tengo que hacerlo cada vez que puedo importar un proyecto existente.

    • sí, a mí me funciona.
    • He cambiado ‘Compilador Cumplimiento de 1.5 a 1.6 y funcionó. gracias

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea