您的位置:首页 > 编程语言

XML布局文件在Activity自动生成代码(三)终结篇

2012-04-12 16:17 471 查看
昨天晚上加班搞到很晚,中午才赶到公司来上班,做程序员真是累呀~~。好了,报怨完了直接进入正题。上一篇我们介绍完SAX解析,可能现在有人会说,讲了这么多没有实际的效果,看完了看懂了也转化不了战斗力。好了在这一篇我会终结这一系列的文章,并提供完整的代码和演示,到时候我相信大家会有所收获。

因为最后会提供完整工程的下载,所以在讲解过程中我不会将整块代码都贴出来。

首先来看一下数据Model ,WidgetInfo类:

/**
* 控件id名称
*/
private String idName;
/**
* 控件类型
*/
private String type;
/**
* 输出内容
*/
private String content;
/**
* 排序优先级,数值低的排在前面
*/
private int level;


逐一说明一下,idName为控件名称不能多说,type为控件类型即Button、TextView等等类型。输出内容和排序等级不是很好懂,还是按照惯例举一个例子:

若程序自动生成的其中一条代码为: private Button testButton;

那么其WidgetInfo对象的content就为以上内容,而level为0,我们希望它排在第一区域,即控件的声明区域。

其它情况可以类推,不再赘述。

其实难点都已经介绍的差不过了,具体的代码还是大家下载自己看吧,下面我们看一下程序的运行效果:

测试XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
android:id="@+id/testButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button" />

<TextView
android:id="@+id/testTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TextView" android:textSize="40dp"/>

</LinearLayout>


注意:我将该测试文档放在桌面,所以在代码中声明它的路径为C:/Documents and Settings/Administrator/桌面/test.xml,所以大家在运行该工程的时候注意修改路径,

不然的话会报错的。

运行效果截图:



当然,该程序支持自动生成代码的控件类型不仅仅只有TextView和Button两种,而是16种控件类型(具体情况请看源码)。大家觉得不够可以自己修改源程序,继续优化。

看到这里大家应该可以明白了,就是在开发Activity的时候我们只要先配置好对应的XML文件,那么在Activity中控件的声明、控件句柄的赋值、Button控件注册监听器以及监听器 处理框架的代码都自动生成了,这样就会减少我们书写代码的量,从而提高开发效率。

总结:有人说过产品的优化是没有终点的,这句话同样适用于程序。其实这个程序还有许多需要优化的地方,还是不够自动化。如果我们能将这个功能做成插件,像字段的 get/set方法能在代码页面中自动生成的话就更自动化了(插件开发技术我还没接触过~~)。这一系类的文章只是抛砖引玉,相信你们能比我做的更好。

下载地址:http://files.cnblogs.com/pengwei1988/XMLParse.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐