隐藏操作栏时,智能手机旋转时会抛出错误

时间:2016-09-06 14:32:29

标签: android rotation

我有以下代码来检测智能手机何时旋转并隐藏操作栏:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        getActionBar().hide();
    }
    else {
        getActionBar().hide();
    }
}

应用程序抛出一个空指针exeption:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference

智能手机旋转时

1 个答案:

答案 0 :(得分:0)

您当前的代码是多余的。 getActionBar().hide() is always called, regardless of the new configuration being portrait or landscape.此外, 你似乎需要在那里进行空检查

if(getActionBar() != null)
       getActionBar().hide()

我不知道你想做什么,但这看起来并不正确。为什么不在onCreate

中执行此操作
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)

...

getActionBar().hide()