2011-01-21 21 views
19

Ben bir hata söyleyerek bu hat@Override açıklama hatası (android prefs)

public void onCheckedChanged(CompoundButton compoundButton,boolean test) { 

oluşturulur Uygulamamda

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

içine tercihlerini etkinleştirmek için bu kodu kullanmaya çalışıyor edildiğinde:

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 ek açıklamasını kaldırırsam, kod çalışmaz ve bir uyarı bana o bölümün kod yerel olarak kullanılmaz.

Birini geçmiş ve onları şaşırtmak, yardım edip edemeyeceğinizi merak ediyordum.

Bu hataya neden olan genel senaryolar var mı?

bu benim proje

Teşekkür

cevap

18

Bu bir uygulama şey kurulabilir diye düşündüm. Java 5'e karşı Java 6'da, bir arabirimle "Geçersiz Kıl" seçeneğini kullanıp kullanamayacağınızı değiştirdiler (Geçersiz kılma, bir arabirim ile yapmadığınız bir tür varsayılan davranışı geçersiz kıldığınızı gösterir gibi görünüyor). Arzu ederseniz, Eclipse tercihlerinde arama yapabilir ve derleme hatasından bir derleme uyarısına dönüştürebilirsiniz. CheckBox() işlevinin kodunu siz bana iyi görünüyor. Ancak, hiçbir zaman CheckBox işlevini çağırmıyorsunuz, yani 'yerel olarak kullanılmıyor' hatası geliyor. Bu işlevi OnPreferenceClick yönteminden çağırmak mı istiyorsunuz?

+0

WOW man! çok teşekkürler. Tamam o zaman yerel olarak kullanılacaksa nasıl ve nerede onay kutusunu çağırmak için kullanacağım? – Jack

+0

onPreferenceClick yönteminin içinden bunu yapmanın bir yolu vardır. Editor.commit sonra() CheckBox(); – Hamy

+4

Sadece YourProject-> RightClick-> Properties-> Java Compiler-> 1.5, to 1.6 'da 1.5 ile 1.6 arasında değişiklik yapın. Uygula ve yeniden inşa etmek için Evet. – Siddharth

49

Proje ayarları -> Java Derleyici bölümüne gidip derleyici uyumluluk seviyesini 1,6'ya değiştirebilirsiniz. Var olan bir projeyi her ithal ettiğimde bunu yapmak zorundayım.

+0

Evet, benim için çalışıyor. – anticafe

+0

'Compiler Compliance'ın 1.5'den 1.6'ya değiştirdim ve işe yaradı. teşekkürler –

İlgili konular