安卓和XML

3

我是Android开发的新手(今天刚开始)。我正在熟悉XML,这对我来说是新的。如果有人能帮助我理解这种语言,我将不胜感激。

请参见下面我所提到的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
    android:icon="@drawable/ic_super"
    android:title="@string/action_search" 
    yourapp:showAsAction="ifRoom|withText" />

</menu>

问题:

1)如何最好地理解XML代码?我的理解是它们像树一样。我应该像文件系统那样考虑它们,有层次结构等吗?

2)我不确定命名空间的用途是什么。例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" > 

这是否意味着菜单标签包含xmlns:android属性和xmlns:yourapp属性?

3)我真的很想学习如何更熟练地使用XML,如果有任何资源链接将不胜感激(我尝试了w3,但它并没有回答我所提出的问题)。

4)“:”是什么意思/作用?我理解代码的其他部分。由于API已经很清楚地解释了它,但我对XML的基本理解阻碍了我对代码的完全理解。

2个回答

1

问题:

1)XML代码的最佳思考方式是什么?我的理解是它们像树一样。我应该像文件系统那样考虑它,其中有层次结构等吗?

--不是,XML是数据标签,因此有开放和关闭标签以及自包含标志,例如:将描述您的冰箱,如果您在冰箱中有多个乳制品和一些蔬菜,则会看起来像这样:

<Fridge>
   <Dairy>
      <Milk />
      <Cheese />
   </Dairy>
   <Veggies>
      <Carrots />
      <Pumpkin />
   </Veggies>
</Fridge>

2) 我不确定命名空间的用法是什么。例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" >

这是说menu标签包含xmlns:android属性和xmlns:yourapp属性吗?

所以xmlns是XML命名空间,它们在模式中定义,就像定义有哪些属性一样,并且命名空间将一堆定义的属性组合在一起,例如:

<menu xmlns:android .. 
  android:name=""
  android:orderId="5"
  />

Android模式命名空间描述了Android平台所知道的所有属性,您可以通过使用android:访问它们,然后访问该菜单类型已知的属性。

3)我真的很想学习如何更熟练地使用XML,任何资源链接都将不胜感激(我尝试过w3,但它并没有回答我所提出的问题)。

Android中的XML不是您在其他地方使用的XML。 Android仅使用XML来描述屏幕和菜单的外观和行为,最好的学习Android如何使用XML的方法是查看developer.android.com并尝试查看线性布局,从那里学习。

4) ":"的含义/作用是什么? 我理解其余的代码。由于API清楚地解释了它,但是我的XML基础知识阻碍我完全理解代码。

“that:this”中的“:”是使用该命名空间中的此属性,命名空间是使用xmlns:NAMEDITWHATEVER =“ schema location”定义的,NAMEDITWHATEVER:attribute1 =“此属性描述的任何内容”。


0
  1. 是的,你可以将其视为嵌套结构,就像文件系统的树形结构一样。
  2. 是的,这意味着menu有两个这些属性。有关命名空间的更多信息,请参考this post
  3. 如果不知道W3没有帮助您解决什么问题,很难确定您正在寻找什么。XML非常简单明了,没有超出表面的东西。
  4. foo:bar中的冒号表示barfoo命名空间中。

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