我有这个菜单xml工作正常:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:id="@+id/context_menu_save"
android:actionViewClass="my.app.TextViewPlus"
android:showAsAction="always"
android:title="@string/logout"
android:visible="false"/>
</menu>
但是当我开始使用AppComap v7时,我使用getActionView()
时出现了null异常。
我将菜单布局更改为:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/context_menu_save"
myapp:actionViewClass="my.app.TextViewPlus"
myapp:showAsAction="always"
android:title="@string/logout"
android:visible="false"/>
</menu>
现在它工作正常。任何人都可以解释,为什么会发生?
答案 0 :(得分:2)
xmlns:myapp 当您创建自己的(或使用其他人)自定义视图时,会使用此选项。
xmlns:android 这在默认的android视图中使用。
所以你的问题,我希望你使用自己的(或使用他人)自定义视图。所以你有错误。
答案 1 :(得分:2)
在Android Studio v1.5中,我看到此方案的以下消息:
使用appcompat库时,菜单资源应引用 app: 命名空间,而不是 android: 命名空间。
不使用appcompat库时,您应该使用 android: 命名空间。