2011-01-21 5 views
19

나는 오류가 말하는이 줄@Override 주석 오류 (안드로이드의 환경 설정)

public void onCheckedChanged(CompoundButton compoundButton,boolean test) { 

에 생성되는 내 응용 프로그램

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

를에 기본 설정을 사용하려면이 코드를 사용하려고 할 때 :

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 주석을 제거하면 코드가 작동하지 않고 경고 메시지를 통해 코드가 로컬에서 사용되지 않습니다.

과거의 누군가를 실행하고 그들을 당황하게하는 데 도움이 될지 궁금해하고 있었습니까?

이 오류가 발생하는 일반적인 시나리오가 있습니까?

나는 그것이 내 프로젝트가

감사

답변

18

그것은 구현 일이 설정 될 수있다 생각했다. Java 5 vs Java 6에서는 오버라이드가 인터페이스로하지 않는 일종의 기본 동작을 재정의한다는 것을 암시하는 것처럼 보이기 때문에 인터페이스에서 "오버라이드"를 사용할 수 있는지 여부가 변경되었습니다. 원하는 경우 Eclipse 환경 설정에서 검색하여 컴파일 오류에서 컴파일 경고로 변경할 수 있습니다. CheckBox() 함수 안의 코드는 나에게 잘 보인다.

그러나 CheckBox 함수를 호출하지 않으므로 '로컬에서 사용되지 않음'오류가 발생합니다. OnPreferenceClick 메서드 내에서 해당 함수를 호출한다는 의미였습니까?

+0

와우 맨! 고마워. 그러면 로컬에서 사용하는 경우 확인란 메서드를 호출하는 방법과 위치는 어디에 있습니까? – Jack

+0

내부에서 onPreferenceClick 메서드를 사용하여이를 수행 할 수 있습니다. editor.commit() 후에 CheckBox()에 대한 호출을 추가하십시오. – Hamy

+4

YourProject-> RightClick-> Properties-> Java Compiler-> 1.5에서 1.5에서 1.6으로 수정하십시오. 적용하고 다시 작성하려면 예를 누릅니다. – Siddharth

49

프로젝트 설정 -> Java 컴파일러로 이동하여 컴파일러 준수 레벨을 1.6으로 전환 할 수 있습니다. 나는 기존 프로젝트를 가져올 때마다 그것을해야만한다.

+0

네, 저에게는 효과가 있습니다. – anticafe

+0

'컴파일러 호환성을 1.5에서 1.6으로 변경했으며 효과가있었습니다. 감사합니다 –