1.今天在开发的时候遇到了一个问题,menu里面的actionViewClass里面的控件找不到,布局如下:
<?xml version="1.0" encoding="utf-8"?>
<menu 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"
tools:context="com.liluo.epco.UI.activity.SeachTaskActivity">
<item
android:id="@+id/menu_seach"
android:title=""
android:icon="@mipmap/sousuo"
android:actionViewClass="android.widget.SearchView"
app:showAsAction="always" />
</menu>
咋一看是没啥问题,当我们在java里面使用时就会报:
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'android.view.View android.view.MenuItem.getActionView()' on a null object reference
at com.liluo.epco.UI.activity.SerachActivity.initView(SerachActivity.java:47)
at com.liluo.epco.base.BaseActivity.init(BaseActivity.java:135)
at com.liluo.epco.base.BaseActivity.onCreate(BaseActivity.java:44)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
解决方案其实很简单,将android换为app即可
app:actionViewClass="android.widget.SearchView"