Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android NullPointerException:在null对象引用上设置DisplayHomeAsupEnabled(布尔值)_Android_Xml_Android Actionbar_Material Design - Fatal编程技术网

Android NullPointerException:在null对象引用上设置DisplayHomeAsupEnabled(布尔值)

Android NullPointerException:在null对象引用上设置DisplayHomeAsupEnabled(布尔值),android,xml,android-actionbar,material-design,Android,Xml,Android Actionbar,Material Design,我有一个标准设置,带有appcompativity。 要启用父级活动的“向上按钮”我需要调用getSupportActionBar()。setDisplayHomeAsUpEnabled(true) 有许多相似的。不幸的是,我无法找到我的错误,因为我使用的是AppCompatActivity而不是Activity和getSupportActionBar()而不是getActionBar() 活动: public class GalleryActivity extends AppCompatAct

我有一个标准设置,带有
appcompativity
。 要启用父级
活动的“向上按钮”
我需要调用
getSupportActionBar()。setDisplayHomeAsUpEnabled(true)

有许多相似的。不幸的是,我无法找到我的错误,因为我使用的是
AppCompatActivity
而不是
Activity
getSupportActionBar()
而不是
getActionBar()

活动:

public class GalleryActivity extends AppCompatActivity {

   (...)

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gallery_view);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        setSupportActionBar(toolbar);

        (...)
    }
}
activity_gallery_view.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar_gallery"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/gallery_content" />

</android.support.design.widget.CoordinatorLayout>

在拿到之前先设置好

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

在你得到它之前就把它设置好

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

按如下方式更改setToolbarActionbar和getSupportActionbar的顺序:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_gallery);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

您只需在以编程方式设置supportActionbar之前尝试接收它。这就是为什么会出现NullPointerException的原因更改setToolbarActionbar和getSupportActionbar的顺序如下:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_gallery);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

您只需在以编程方式设置supportActionbar之前尝试接收它。这就是为什么会出现NullPointerException的原因。您在xml和java文件中为工具栏指定了不同的id。将它们设置为相同的id,很可能您的错误就会消失。 这是你的错误

android:id="@+id/toolbar_gallery"
在活动java文件中,您已经完成了

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

解决此问题

您在xml和java文件中为工具栏指定了不同的id。将它们设置为相同的id,很可能您的错误应该消失。 这是你的错误

android:id="@+id/toolbar_gallery"
在活动java文件中,您已经完成了

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

解决此问题

获得相同的问题。在查看android清单后解决

<application    
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>

得到相同的问题。在查看android清单后解决

<application    
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>

您是否检查了工具栏id?您在执行findViewById()时为XmlID指定了不同的id您是否检查了工具栏id?在执行findViewById()时,您为xml的id指定了不同的id