使用HoloEveryWhere库将菜单项添加到ActionBar中时出现问题



我正在学习教程https://developer.android.com/training/basics/actionbar/adding-buttons.html

上面写着:

如果您的应用程序正在使用支持库进行版本兼容性低至Android 2.1,showAsAction属性不可用来自android:命名空间。相反,此属性由Support Library,您必须定义自己的XML命名空间并使用该名称空间作为属性前缀。(自定义XML命名空间应该基于你的应用程序名称,但它可以是你想要的任何名称,并且只能可在您声明它的文件的范围内访问。)

所以我定义了以下main_activity_actions.xml

<?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" >
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_launcher"
android:title="temp"
app:showAsAction="always"/>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_launcher"
android:title="temp"
app:showAsAction="always"/>
</menu>

我得到以下错误:

No resource identifier found for attribute 'showAsAction'

我在我的项目中使用HoloEveryWhere库。项目建设目标是19。清单有:

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />

如何让自定义命名空间工作有什么建议吗?

将引用添加到android-support-v7-appcompat库中会产生大量已定义的错误:

error: Attribute "actionBarDivider" has already been defined    abc_attrs.xml   /Myapp/HoloEverywhere-master/library/res/values line 71 Android AAPT Problem

谢谢。

I tried copying android-support-v7-appcompat.jar under libs folder, but it didn't help

您需要在android项目中引用AppCompat,而不是将其作为jar添加到libs文件夹中。

http://developer.android.com/guide/topics/ui/actionbar.html

就像你引用谷歌播放服务一样,你需要以同样的方式引用appcompat。

http://developer.android.com/tools/support-library/setup.html

首先不需要使用自定义命名空间。简单地使用android名称空间android:showAsAction="always"工作良好,使用模拟器API级别8和2.3x设备以及4.4设备进行测试。

最新更新