【问题标题】:Why can't I override onConfigurationChanged?为什么我不能覆盖 onConfigurationChanged?
【发布时间】:2010-01-09 01:51:48
【问题描述】:

我正在尝试覆盖方法 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);
    }
}

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

【问题讨论】:

    标签: java android


    【解决方案1】:

    您的导入语句中有android.content.res.Configuration 吗?如果您按 Ctrl+Shift+O,Eclipse 可以自动插入导入。

    如果缺少,编译器将无法识别您正在合法地覆盖超类方法,因此会引发错误。

    【讨论】:

    • 谢谢,就是这样。 Eclipse 不建议我出于某种原因导入该包 =)
    【解决方案2】:

    让我猜猜。 SuperNotCalledException。

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

    【讨论】:

      【解决方案3】:

      @Override 注释可能有问题。你确定在Activity中定义了@Override注解的两个方法吗?

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多