Chinaunix首页 | 论坛 | 博客
  • 博客访问: 530997
  • 博文数量: 26
  • 博客积分: 509
  • 博客等级: 下士
  • 技术积分: 809
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-15 18:01
文章分类

全部博文(26)

文章存档

2015年(1)

2013年(6)

2012年(19)

分类: 嵌入式

2013-01-11 16:35:18

使用xml一段时间了,感觉对其应该熟悉了,但是现在在编程中遇到一个问题,查看布局xml的时候,发现其中xmlns还不明白是什么。次奥,我竟然一直对这个问题熟视无睹!网上搜了资料,整理如下:

xmlnsXML Namespaces的缩写,中文名称是XML命名空间。

使用的规则为,首先定义命名空间xmlns:namespace-prefix="namespaceURI"Androidxml中的使用是:xmlns:前缀=应用程序包路径;然后使用的时候按格式:namespace-prefix(前缀):属性

如果使用xmlns,则xmlns的定义必须放在最外层开始的的标记中

当命名空间被定义之后,所有带有相同前缀的子元素都会与同一个命名空间相关联。避免XML解析器对xml解析时的发送名字冲突,这就是使用xmlns的必要性。当自定义的View有自己的属性的时候,就用到xmlns来定义一个命名空间。

一个例子


 

点击(此处)折叠或打开

    <?xml version="1.0" encoding="utf-8"?>

  1.     <LinearLayout xmlns:android="android"
  2.      xmlns:my="demo.view.my"
  3.      android:orientation="vertical"
  4.      android:layout_width="fill_parent"
  5.      android:layout_height="fill_parent"
  6.      >
  7.     
  8.      <demo.view.my.MyView
  9.      android:layout_width="fill_parent"
  10.      android:layout_height="wrap_content"
  11.      my:textColor="#FFFFFFFF"
  12.      my:textSize="22dp"
  13.      />
  14.     </LinearLayout>

上面就重新定义了my这个命名空间。

阅读(31604) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

皇问天2015-04-25 11:47:21

皇问天:问你一个问题:<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:zidingyishuxing="http://schemas.android.com/apk/res/com.example.zidingyishuxing"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    
    tools:context=".MainActivity"&nb

我已经把android换成自己的包名了,也自己创建了一个XML重新写属性的内容,那个test_msg就是我自己定义的属性。

回复 | 举报

皇问天2015-04-25 11:45:37

问你一个问题:<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:zidingyishuxing="http://schemas.android.com/apk/res/com.example.zidingyishuxing"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    
    tools:context=".MainActivity"&nb