2010-01-09 2 views
3

내가을의 onConfigurationChanged 메소드를 오버라이드 (override)하기 위해 노력하고있어 나는 오류 얻을 : 방법은의 onConfigurationChangedonConfigurationChanged를 재정의 할 수없는 이유는 무엇입니까?

(구성) 형 BaseActivity의 무시하거나 슈퍼 방법 여기

내 BaseActivity이를 구현해야합니다. java :

import android.app.Activity; 
import android.content.Intent; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class BaseActivity extends Activity 
{ 
    protected View.OnClickListener mButtonListenerUPP; 
    protected View.OnClickListener mButtonListenerALT; 
    protected View.OnClickListener mButtonListenerNAV; 
    protected View.OnClickListener mButtonListenerHIS; 

    @Override 
    public void setContentView(int layoutResID) 
    { 
     super.setContentView(layoutResID); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) 
    { 
     setContentView(R.layout.main); 
    } 
} 

인터넷에서 많은 게시물이이 방법을 재정의 할 수 있다고 말하고 있습니다. 아이디어가 있습니까?

답변

9

수입 명세서에 android.content.res.Configuration이 있습니까? Eclipse는 Ctrl + Shift + O를 누르면 가져 오기를 자동으로 삽입 할 수 있습니다.

만약 이것이 없다면, 컴파일러는 당신이 합법적으로 수퍼 클래스 메소드를 오버라이드하고 있다는 것을 인식 할 수 없으므로 에러를 던질 것입니다.

+0

Thx, 그게 다야. Eclipse는 어떤 이유로 든 패키지를 가져올 것을 제안하지 않았습니다. =) – Ted

+1

나에게도 똑같은 일이 일어났습니다. – rizzle

0

어쩌면 @Override 주석에 문제가있을 수 있습니다. @Override로 주석 처리 된 두 메소드 모두 Activity에 정의되어 있습니까?

해당 @Override 주석을 제거하지 않으면됩니다.

+0

둘 다 '활동'의 공개 메소드입니다. http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged%28android.content.res.Configuration%29 –

2

내가 추측 해 보겠습니다. SuperNotCalledException입니다.

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{  
    super.onConfigurationChanged(newConfig); // add this line 
    setContentView(R.layout.main); 
} 
관련 문제