为什么我不能覆盖onConfigurationChanged?

时间:2010-01-09 01:51:49

标签: java android

我正在尝试覆盖方法 onConfigurationChanged ,我收到错误:

BaseActivity类型的onConfigurationChanged(Configuration)方法必须覆盖或实现超类型方法

这是我的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);
    }
}

互联网上的很多帖子都说我可以覆盖这种方法......有什么想法吗?

3 个答案:

答案 0 :(得分:9)

您的导入声明中是否有android.content.res.Configuration?如果按Ctrl + Shift + O,Eclipse可以自动插入导入。

如果缺少,编译器将无法识别您是否合法地覆盖了超类方法,因此会抛出错误。

答案 1 :(得分:2)

让我猜一下。 SuperNotCalledException。

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

答案 2 :(得分:0)

可能@Override注释存在问题。您确定在Activity中定义了两个使用@Override注释的方法吗?

如果不是,则必须删除相应的@Override注释。