DrawerLayout报错的解决

来源:互联网 发布:windows数字签名 编辑:程序博客网 时间:2024/05/22 04:11

闲来无事,研究了下google官方的侧滑,DrawerLayout 

但是把官方的代码拷贝到项目里,运行就报了如下的错误

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

at com.google.drawerlayoutdemo.MainActivity.onCreate(MainActivity.java:55)

回到代码第55行


getActionBar().setDisplayHomeAsUpEnabled(true);//报错getActionBar().setHomeButtonEnabled(false);//报错


就是这两句都为空了

通过百度 以及stackoverflow 找的答案都不够详细

后面自己尝试了下,终于找到解决办法了

第一步:

extends Activity
改为

extends AppCompatActivity 
导包

第二步:

代码中所有用到的


getActionBar()

全部替换成

getSupportActionBar()

Ctrl+F查找替换相信大家都知道吧

然后加入Menu文件中如下一行报错的话

android:showAsAction="ifRoom|withText" />
将前缀

android改为app

app:showAsAction="ifRoom|withText" />
加上

xmlns:app="http://schemas.android.com/apk/res-auto"

因为我也只是在了解这个官方的侧滑DrawerLayout 并没有实际用的多,这样更改只是项目能够运行测试了,并没有考虑版本问题,所有的代码都是拷官方了!


0 0