意外的命名空间前缀与操作栏

4

我正在尝试通过支持库v7实现ActionBar。因为我想要支持Android 2.1(API级别7)及以上的应用程序。

我在http://developer.android.com/guide/topics/ui/actionbar.html中阅读到以下内容:“使用来自支持库的XML属性请注意,上面的showAsAction属性使用了在标记中定义的自定义命名空间。这在使用支持库定义的任何XML属性时是必需的,因为这些属性在旧设备上的Android框架中不存在。因此,您必须使用自己的命名空间作为所有由支持库定义的属性的前缀。”

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:myapp="http://schemas.android.com/apk/res-auto"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item        
        android:id="@+id/refresh"
        android:icon="@drawable/ic_navigation_refresh"
        android:title="@string/refresh"
        myapp:showAsAction="always"/> 
    <item
        android:id="@+id/settings"
        android:title="@string/settings"
        myapp:showAsAction="always"/>

    <item
        android:id="@+id/logout"
        android:title="@string/logout"
        myapp:showAsAction="always"/>
</menu>  

Eclipse显示错误:“在标签项中找到意外的命名空间前缀“myapp”。我不知道我做错了什么。”

1
我找到了一个类似解决方案的东西。如果我清理我的项目,错误就会消失,我就可以启动我的应用程序了。但是当我在xml中完全改变其他东西并保存时,错误又会再次出现,我必须再次清理它。 - user2791366
1个回答

0

**你需要为菜单标签添加xmlns:tools和tools:context属性**

    <menu xmlns:myapp="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.companyname.myapp.MainActivity">

    **Here in xmlns:context you have replace companyname and MainActivity as per need **

    **Other wise you have to clean and rebuild your project because IDE shows such error when they didn't got perfect project workspace OR module **

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接