怎样编写一个Android项目中的.xml文件

目录

一、xml语言的简介及发展历程

二、xml语言在移动应用开发中的应用

1、标签闭合

2、属性值要引号

3、特殊字符转义

 4、xml命名规范

5、xml声明

6、命名空间

 7、xml的格式化和缩进

三、总结

.xml文件在Android项目中扮演一个什么样的角色?它起到什么作用?

.xml文件在Android项目中是特别重要的,当你打开手机软件看到的画面离不开它的身影,甚至可以说它是整个项目的“地基”。

此文件在项目中起到不同的作用:

界面布局、资源定义、配置文件、数据存储、应用程序间的通讯。

接下来,我们应该学习了解编写此种文件所运用的语言-xml。

一、xml语言的简介及发展历程

xml全名可扩展标记语言,是用于描述数据的标记语言,也是一种通用、可扩展的语言。它被用于各种领域,例如Web开发、移动应用开发、数据交换等。

为什么会出现xml语言呢?那是因为在计算机发展历程中出现了各式各样的系统,这个时候就会出现一个问题,当我使用一种系统做出了一些数据,而我要验证这些数据需要在另外一个系统中进行,这个时候就要在不同的系统之间进行数据传输,为了解决这个问题于是提出了xml语言。它的设计目标是提供一种通用的、可扩展的标记语言,用于描述数据的结构和内容。

自从xml语言提出之后,它一直都在发展,历程如下:

  1. 1996年:XML的前身SGML(标准通用标记语言)在ISO(国际标准化组织)发布。SGML是一种用于定义文档结构和内容的标记语言,但它过于复杂和庞大,不适合在互联网上广泛使用。

  2. 1998年:W3C(万维网联盟)发布了XML 1.0规范。XML简化了SGML的语法和规则,使得它更易于使用和理解。XML的发布标志着一种新的、通用的、可扩展的标记语言的诞生。

  3. 2000年:W3C发布了XML Schema规范。XML Schema是一种用于定义XML文档结构和内容的模式语言,它提供了比DTD更强大和灵活的验证机制。

  4. 2004年:W3C发布了XPath和XSLT规范。XPath是一种用于在XML文档中定位和选择节点的语言,XSLT是一种用于将XML文档转换为其他格式(如HTML、XML或文本)的语言。

  5. 2006年:W3C发布了XQuery规范。XQuery是一种用于查询和检索XML数据的语言,类似于SQL用于关系数据库的查询。

  6. 2008年:W3C发布了XML Signature和XML Encryption规范。XML Signature用于对XML文档进行数字签名,XML Encryption用于对XML文档进行加密。

  7. 2012年:W3C发布了XMLHttpRequest Level 2规范。XMLHttpRequest是一种用于在Web浏览器中进行异步数据交换的API,它是实现AJAX(异步JavaScript和XML)的基础。

  8. 现在:XML仍然是一种广泛使用的数据交换和描述语言,在Web开发、移动应用开发、数据存储和数据传输等领域都有重要的应用。

二、xml语言在移动应用开发中的应用

在我们需要创建一个移动应用,我们首先应该写出界面,这里就牵涉到了画面中元素的布局,于是就运用到xml语言。

那么怎样写一个界面文件呢?

写出界面文件,必须遵循一定的规则,其如下:

1、标签闭合

xml语言要求每一个标签都需要有一个开始标签,一个结束标签。

例:

<TextView>

<text>Hello World</text>

</TextView>

这是一个很简单的一个标签,但是它不会在界面中显示,因为没有设定长度和宽度等一些信息。

当你添加一个.xml文件,你进入后会看到

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout> 

这里就给我们反应了一个信息写一个.xml文件,必须要有一个开始标签,一个结束标签。

其中<?xml version="1.0" encoding="utf-8"?>是xml文件的声明,这里是告诉编码器使用的XML版本和字符编码。

<RelativeLayout>是根元素,这里定义了一个相对布局。

其中包含了三个空间属性:android、app、tools,分别定义了Android的基本属性、应用程序的特定属性和开发工具属性。

android:layout_width="match_parent"

android:layout_height="match_parent"

指定了宽度和高度与父容器匹配。

</RelativeLayout>是结束标签,表示该布局的定义结束。

根据上述描述可知,这里的定义了父容器,要想在画面中体现你想表达的内容,应在父容器里面书写代码。

2、属性值要引号

xml语言中你要给你的内容添加相应的属性你需要利用引号给括起来,可以用单引号或者双引号括起来,如下:

这里我写了一个 文本,让其显示在画面中。

我设置了其属性:

android:id="@+id/myTextView",这个属性是TextView控件的唯一标识符,你可以在其他的代码中引用它。

android:layout_width="wrap_content"和android:layout_height="wrap_content"设置了控件的宽度和高度,其中wrap_content表示控件根据其内容自动调整宽度和高度。

其中内容的显示是在android:text='Hello, World!'里面显示。

android:textSize="24sp"这个属性是控件的文本大小属性,已sp(缩放独立像素)为单位。如果你删去这个代码,其文本就会变小,可能是自动调整到默认大小,如下图所示:

 android:layout_centerInParent="true"这个属性是在父布局中居中显示控件的内容。

注:在写完代码之后,发现左边没有出现预览画面,而且没有发现明显错误,很大可能是项目在有所损坏,重新建立项目就行了。

3、特殊字符转义

在xml中,有时候会用到一些特殊符号,为了使xml解析器能够正确认识,所以利用了转义。

例如,你要在文本中添加<符号,但是xml解析器会认为是标签的开始,这就会报错,所以你需要使用转义符号,让xml解析器能够正确解析并表示在预览画面中。如下图所示:

 利用<符号的转义符号&lt;能够正确识别,如下图所示:

 4、xml命名规范

xml的命名规范主要包括元素、属性和命名空间的命名规则。

①、元素命名规则

必须要以字母、下划线或者冒号开头;

可以包含字母、数字、下划线、冒号、句号或者破折号;

不能以xml开头无论大小写;

不能包含空格或者特殊字符。

②、属性命名规则

与元素命名规则大致相同,多了一条是:

不能与元素名称相同。

③、命名空间命名规则

必须是一个有效的URL;

前缀是有效的xml名称。

例如:

<root xmlns:my_ns="http://example.com/mynamespace">
    <my_ns:element attribute="value">Content</my_ns:element>
</root>
其中root是一个合法的元素名称,my_ns是合法的命名空间前缀,my_ns:element是合法元素名称,http://example.com/mynamespace提供了合法的URL。

5、xml声明

这个的作用就是指定xml文档的版本和所用字符的编码。

如下图所示:

图中代码显示,包含了两种重要的属性:

一是xml版本,二是指定了xml文档所用的字符编码。

其本质就是能够让解析器能够正确的处理文档。

6、命名空间

这个是用在xml文档中标识元素和属性名称的机制,允许同个文档中使用相同的名称元素和属性,而不会发生冲突。

如下图所示,就是一个正确的命名空间:

 7、xml的格式化和缩进

这个是对xml文档进行结构化排版,能让我们更容易读取和理解xml文档。要完成xml文档的排版,就需要运用到格式化和缩进。

这个排版就是智者见智,仁者见仁了,按照个人喜好来排版。

三、总结

要完成xml文件的编写,一定要遵守以上的规则,在此基础上可以按照个人喜好来进行排版,就能够完成相应的xml文件的编写。总的来说,你想在xml文件中不想写太多的文本,你可以在values文件夹中的strings.xml文件进行编写,然后遵守相应规则进行调用,也能在预览画面中看到你写的文本内容。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
自主学习项目报告(一) 1. 自主学习项目要求 1. 收集编写代码过程碰到的bug,说明bug发生的原因及解决方案 2. 自己在学习过程总结的知识点 3. 上课内容之外自学的知识点 2. 自主学习内容 按照上面的要求列出至少10条 收集编写代码过程碰到的bug,说明bug发生的原因及解决方案 (1)使用actionProvider时出现的问题: 解决方案:换一种import的方式即可,如下所示: "1 "//import android.support.v4.view.ActionProvider; " "2 "import android.view.ActionProvider; " (2)Fragment Transactions 和Activity状态丢失 Fragment transactions用于在一个Activity上添加、移除或者替换fragment。大多数时候,frag ment transaction会在activity的onCreate()方法执行,也可能在与用户交互响应。 然而,BUG是当恢复一个activity时,fragment transaction被执行了,应用就可能发生下面的下崩溃: 原因:不管何时,如果一个FragmentActivity放在后台,对应FragmentMangerI mplmStateSaved的flag就会设置为true。这个flag是用来检查是否有state loss。 当试图执行一个transaction时,如果这个flag为true,那么就首先会抛出IllegalSt ateException异常。 解决方案:不要在让transactions在其他的Activity生命周期函数提交,如onActivi tyResult()、onStart()和onResume() 自己在学习过程总结的知识点 (3)Android体系结构和Android项目目录 Android是基于Linux内核的软件平台和操作系统,采用了软件堆栈的架构,共分为4 层:第一层是Linux内核,提供由操作系统内核管理的底层基础功能;第二层是间件层 ,由函数库和Android运行时构成;第三层是应用程序框架层,提供了Android平台基本 的管理功能和组件重用机制;第四层是应用程序层,提供了一系列核心应用程序。 src 源代码目录 gen 目录(R.java文件是ADT自动生成,不能手动修改,R.java作用:src的代码通过R.ja va访问res的资源) res 资源目录(/res/layout/目录:界面布局文件,xml;/res/raw不参加编译的资源,不能生 成对应文件) AndroidManifest.xml 清单文件(声明应用程序属性信息,声明组件,声明权限,唯一一个组件BroadcastRec eiver不需在AndroidManifest注册) (4)四大组件及其常用界面布局: Activity是app的表示层,作用:与用户交互,显示信息;Service用于无用户界面, 但需长时间在后台运行的应用;BroadcastReceiver监听系统广播、其它应用程序广播、 其它组件广播,并响应广播消息;ContentProvider用于进程间共享数据。 线性布局---LinearLayout 表格布局---TableLayout 相对布局---RelativeLayout 帧布局---FrameLayout 网格布局---GridLayout 绝对布局---AbsoluteLayout (5)Activity的两种启动方式、四种状态、四种模式 直接启动 :startActivity(Intent intent) 带返回值启动:startActivityForResult(Intent intent, int requestCode) onCreate()、onStart()、onRestart()、onResume()、onPause()、onSt op()、onDestroy() Activity4种状态: 运行状态:Activity位于前台,用户可见,获得焦点 暂停状态: Activity可见,但被其它Activity覆盖,没有获得焦点 停止状态:不可见,失去焦点 销毁状态:Activity结束,或所在进程被结束 Activity有4种启动模式,分别为standard、singleTop、singleTask和singleInsta nce (6)Intent的启动方式及其七大属性 显式Intent(指定启动名称): 明确指出目标组件名称的Intent 告诉Android系统,我要"找谁",Android平台将目标组件启动起来 常用于APP内部组件间启动 隐式Inten

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜作

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值