2010-01-09 73 views
3

我試圖重寫 onConfigurationChanged的方法,我也得到了錯誤:類型BaseActivity的爲什麼我無法重寫onConfigurationChanged?

方法onConfigurationChanged(配置)必須覆蓋或實現超方法

這是我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?如果按Ctrl + Shift + O,Eclipse可以自動插入導入。

如果缺少,編譯器將無法識別出您合法地覆蓋了超類方法,因此會拋出錯誤。

+0

Thx,就是這樣。 Eclipse沒有建議我導入該軟件包出於某種原因=) – Ted 2010-01-09 02:17:13

+1

同樣的事情發生在我身上。 – rizzle 2011-03-16 20:18:02

0

也許有@Override註釋存在問題。你確定用@Override註解的兩個方法都是在Activity中定義的嗎?

如果沒有,您必須刪除相應的@Override註釋。

+0

它們都是'Activity'中的公共方法:http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged%28android.content.res.Configuration%29 – 2010-01-09 02:18:07

2

讓我猜。 SuperNotCalledException。

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{  
    super.onConfigurationChanged(newConfig); // add this line 
    setContentView(R.layout.main); 
} 
相關問題