为标记ListView找到了意外的名称空间前缀“xmlns”

时间:2013-06-06 01:14:00

标签: android listview xml-namespaces

我在activity_main.xml中的RelativeLayout下添加了一个列表视图,为主要活动创建一个简单的列表视图(如果我使用了错误的术语,请原谅。我是android dev的新手。)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ListView 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/listview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

这种做法有一段时间了 我注意到我做了什么,因为现在我在线上得到一个红色的错误圈         android:id="@+id/listview" 我得到的错误是:Unexpected namespace prefix "xmlns" found for tag ListView

Eclipse不会让我编译项目,即使它只是工作。

提前致谢!

2 个答案:

答案 0 :(得分:3)

你可以删除     的xmlns:机器人= “http://schemas.android.com/apk/res/android” 从listview定义中,只需要一次xml文件。

    <ListView 
    android:id="@+id/listview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

xmlns是您定义的命名空间,在这种情况下,您在文件的开头说“android”链接到命名空间

http://schemas.android.com/apk/res/android

因此,当您尝试重新定义时会出现错误

答案 1 :(得分:2)

为了避免将来出现这种情况,我认为仅向应用程序通知xml文件的最外层布局查看的xml命名空间就足够了。

这很奇怪,因为解析器应该拒绝任何重复的名称空间声明。

所以你必须从所有空格中移除xmlns:android="http://schemas.android.com/apk/res/android(此处为 ListView ),除了最外层的布局/视图(此处为 RelativeLayout

OR

您可以通过清除该项目来执行临时解决方案。虽然这是一个临时解决方案,但优点是您不必进行任何代码更改