2011 java+Android 技术开发(3)

2020-02-21 02:55

此主题相关图片如下:

下次继续介绍如何把界面的布局用XML表示以及使用命令行进行编译和运行Android程序。 第三篇:将界面实现用XML编排

你刚刚完成的\例子我们称之为”程序化”的界面编排。意思就是说构建你的应用程序界面是直接使用的源代码。如果你已经完成过很多界面程序,你大概熟悉像此类的方式是多么脆弱:一个对布局小小的修改会对源代码造成很头疼的事情。如果忘掉与View的紧密结合,这个导致代码出错和浪费你的调试时间的界面问题也会很简单。

这就是为什么Android提供了一种可替换的界面构建方式: 基于XML的布局文件。最简单的解释这个概念的方式就是展示一个例子。 我们就用刚才创建的项目来进行演示,达到相同的界面效果。

AndroidXML布局文件的大体的结构很简单。 它是一个标签的树,任何一个标签就是View类的名字。在这个例子中, 它是一个很简单的只有一个元素的树,一个 TextView。 你可以使用任何继承自View类的名字作为标签的名字。包括在你的代码中自定义的View类。这个结构可以很容易的构建界面,它比你在源代码中使用的结构和语法更简单。这个模式的设计灵感来自于Web开发。 就是可以将界面和应用程序逻辑分离的模式。

在这个例子中, 也有些是XML的属性,下面是他们的含义:

属性 含义

xmlns:android 这是XML命名空间的声明,它是告诉Android的工具, 你将要涉及到公共的属性已被定义在XML命名空间。在每一个Android的布局文件的最外边的标签必须有这个属性。 android:layout_width 这个属性定义了在屏幕上这个View可用的宽度是多少。 android:layout_height 这个属性定义了在屏幕上这个View可用的高度是多少。 android:text 设置TextView所包含的文本内容,当前设置为”Hello, Android”信息

以上就是一个XML布局文件的样子,但是你需要放在哪里?它要放在你的项目目录的res/ 文件夹下。 “res”是”resources”的缩写,它是存放所有非代码资源的文件夹,包含象图片,本地化字符串和XML布局文件。

这些Eclipse的插件已经给你创建好了,在我们上面的例子中,我们没有使用它。在包浏览器中,展开res目录的layout. 并且编辑 main.xml, 替换掉那个文本内容,然后保存。

现在,在包浏览状态,打开在代码文件夹中名为 R.java的文件, 你将看到下面的内容: public final class R {

public static final class attr { };

public static final class drawable { public static final int icon=0x7f020000; };

public static final class layout {

public static final int main=0x7f030000; };

public static final class string {

public static final int app_name=0x7f040000; }; };

一个项目的R.java文件是一个定义所有资源的索引文件。 使用这个类就像使用一种速记方式来引用你项目中包含的资源。这个有点特别的强大像对于Eclipse这类IDE的代码编译特性,因为它使你快速的,互动式的定位你正在寻找的特定引用。

到目前需要注意的重要事情是叫做”layout”的内部类和他的成员变量”main”, 插件会通知你添加一个新的XML布局文件,然后从新产生这个R.java文件,比如你添加了新的资源到你的项目,你将会看到R.java也相应的改变了

最后重要的事情是你需要去修改你的HelloAndroid源代码,去使用新的XML布局你的界面。替换掉编码式的界面模式。下面是你的新代码的样子,你可以看到,代码变得更加简单了。 public class HelloAndroid extends Activity { /** Called when the activity is first created. @Override */

public void onCreate(Bundle icicle) { super.onCreate(icicle);

setContentView(R.layout.main); } }

当你做这些改变的时候,不要仅仅复制,粘贴到你的代码中,尝试去体验R.java的代码编译特点。你会发现它对你有很大的帮助。

现在完成这些改变以后,你就可以重新运行你的程序,然后你会发现两种不同的界面编排方式会产生同样的效果。

第四篇:调试你的项目

这个用于Eclipse中的Android插件作为Eclipse中的调试器也具有优秀的兼容性。要演示这些,让我们制造一个bug在代码中,改变你的HelloAndroid源代码象下面这样: public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override

public void onCreate(Bundle icicle) { super.onCreate(icicle); Object o = null; o.toString();

setContentView(R.layout.main); } }

这次简单的变化会引起一个NullPointerException异常, 如果你再次运行程序,你将会看到下面的屏幕:

此主题相关图片如下:

要找到什么地方出错,需要设置个断点在你源代码的 “Object o = null;” 行后(你可以双击在Eclipse中显示行数的左部区域), 然后选择 Run -> Debug 选择最后一次的运行加载。 你的程序将会重起模拟器,但是这个时候它会挂起,当它走到你刚才设置的断点的时候,在Eclipse的调试模式视图中,它就会停止

在你的代码处。就像你可以在其他任意程序中做这个一样。

此主题相关图片如下:


2011 java+Android 技术开发(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:催收及失联查找

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: