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