插件化—配置xml的辅助测试
1、xml文件,xml文件在res/xml目录下
<?xml version="1.0" encoding="utf-8"?>
<infos>
<city id="1">
<temp>20C/30C</temp>
<weather>多云转晴</weather>
<wind>7-8级</wind>
<name>广州</name>
<pm>200</pm>
</city>
<city id="2">
<temp>25C/30C</temp>
<weather>多云转晴</weather>
<wind>2-3级</wind>
<name>钦州</name>
<pm>100</pm>
</city>
<city id="3">
<temp>20C/30C</temp>
<weather>多云转晴</weather>
<wind>7-9级</wind>
<name>北海</name>
<pm>250</pm>
</city>
</infos>
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<server>
<className>Demo</className>
<serverName>显示信息</serverName>
<methodName>showDemo</methodName>
</server>
<server>
<className>Demo</className>
<serverName>bbs</serverName>
<methodName>doBbs</methodName>
</server>
</plugin>
2、xml文件
package com.zyh.androidpathtest; import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void click(View view){
try {
XmlResourceParser parser = getResources().getXml(R.xml.weather);
int type = parser.getEventType();
while(type != XmlResourceParser.END_DOCUMENT){
switch(type){
case XmlResourceParser.START_TAG:
if("infos".equals(parser.getName())){
}else if("city".equals(parser.getName())){
String idStr = parser.getAttributeValue(0);
System.out.println("idStr=" + idStr);
}else if("temp".equals(parser.getName())){
String temp = parser.nextText();
System.out.println("temp=" + temp);
}else if("weather".equals(parser.getName())){
String weather = parser.nextText();
System.out.println("weather=" + weather);
}else if("wind".equals(parser.getName())){
String wind = parser.nextText();
System.out.println("wind=" + wind);
}else if("name".equals(parser.getName())){
String name = parser.nextText();
System.out.println("name=" + name);
}else if("pm".equals(parser.getName())){
String pm = parser.nextText();
System.out.println("pm=" + pm);
}
break;
case XmlResourceParser.END_TAG:
if("city".equals(parser.getName())){
System.out.println("===================================");
}
default:
break;
} type = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public void click2(View view){
try{
XmlResourceParser parser = getResources().getXml(R.xml.plugin_server);
int type = parser.getEventType();
PluginServer ps=null;
List<PluginServer> pss = null;
while(type != XmlResourceParser.END_DOCUMENT){
switch(type){
case XmlResourceParser.START_TAG:
if(TextUtils.equals("plugin", parser.getName())){
pss = new ArrayList<PluginServer>();
}else if(TextUtils.equals("server", parser.getName())){
ps = new PluginServer();
}else if(TextUtils.equals("className", parser.getName())){
String className = parser.nextText();
ps.setClassName(className);
}else if(TextUtils.equals("serverName", parser.getName())){
String serverName = parser.nextText();
ps.setServerName(serverName);
}else if(TextUtils.equals("methodName", parser.getName())){
String methodName = parser.nextText();
ps.setMethodName(methodName);
}
break;
case XmlResourceParser.END_TAG:
if(TextUtils.equals("server", parser.getName())){
pss.add(ps);
}
break;
default:
break;
}
type = parser.next();
} for(PluginServer pgs : pss){
System.out.println(pgs.toString());
}
}catch(Exception e){
e.printStackTrace();
}
} }
插件化—配置xml的辅助测试的更多相关文章
- 玩转Spring Boot 自定义配置、导入XML配置与外部化配置
玩转Spring Boot 自定义配置.导入XML配置与外部化配置 在这里我会全面介绍在Spring Boot里面如何自定义配置,更改Spring Boot默认的配置,以及介绍各配置的优先 ...
- 2015年12月10日 spring初级知识讲解(二)最小化Spring XML配置 注解
序,随着Spring容器管理Bean数量增加,XML文件会越来越大,而且纯手工配置XML很繁琐,Spring和JAVA都提供了一些注解方式用以简化XML配置. 目录 一.自动装配(autowiring ...
- android studio 汉化 svn插件汉化。布局文件 属性 汉化 public.xml
android studio 汉化 SvnBundle.properties D:\Android Studio\plugins\svn4idea\lib resources_en.jar\org\j ...
- 有关Android插件化思考
最近几年移动开发业界兴起了「 插件化技术 」的旋风,各个大厂都推出了自己的插件化框架,各种开源框架都评价自身功能优越性,令人目不暇接.随着公司业务快速发展,项目增多,开发资源却有限,如何能在有限资源内 ...
- 插件化 VirtualAPK 简介 体验 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- libnetwork插件化网络功能
Docker把网络跟存储这两部分的功能实现都以插件化形式剥离出来,允许用户通过指令来选择不同的后端实现.这也是Docker希望构建围绕着容器的强大生态系统的一些积极的尝试.剥离出来的独立容器网络项目叫 ...
- 360插件化Replugin爬坑之路
前言 继上次爬完了热修复的坑位,中途爬了各种各样的坑.今天我们来说说插件化Replugin的坑位.Replugin刚出的时候我就看过了.第一次看的时候可能心态不好.没看懂= =第二次重头在看,发现蛮简 ...
- Android架构设计之插件化、组件化
如今移动app市场已经是百花齐放,其中有不乏有很多大型公司.巨型公司都是通过app创业发展起来的:app类型更加丰富,有电子商务.有视频.有社交.有工具等等,基本上涵盖了各行各业每个角落,为了更加具有 ...
- android 插件化框架speed-tools
项目介绍: speed-tools 是一款基于代理模式的动态部署apk热更新框架.插件化开发框架: speed-tools这个名字主要指的快速迭代开发工具集的意思. 功能与特性: 1.支持Androi ...
随机推荐
- PE框架学习之道:PE框架——发送报文流程
PE框架发送报文,适用于PE及VX技术 步骤: 1.在action中使用发送报文,要指定报文在router端的交易名称 2.如果使用supe.execute(context)来发送,不需要第一步 3. ...
- 【剑指offer】面试题43:n个骰子的点数
第一种思路是,每一个骰子的点数从最小到最大,如果为1-6,那么全部的骰子从最小1開始,我们如果一种从左向右的排列,右边的最低,索引从最低開始,推断和的情况. def setTo1(dices, sta ...
- 去除List列表中反复值(稍作调整,也适合于List<T> 和 List<?>)
方法一 循环元素删除 [c-sharp] view plaincopy public static void removeDuplicate(List list) { for ( int i = 0 ...
- C# Best Practices - Handling Strings
Features Strings Are Immutable. A String Is a Reference Type Value Type Store their data directly Ex ...
- python中的迭代
#迭代Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上. #list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标 ...
- 「OC」 多态
一.基本概念 多态在代码中的体现,即为某一类事物的多种形态,OC对象具有多态性.必须要有继承,没有继承就没有多态. 在使用多态时,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指 ...
- Hibernate之工具类HibernateUtil
原创文章,转载请注明:Hibernate之工具类HibernateUtil By Lucio.Yang 1.最简单的工具类,实现SessionFactory的单例共享,session的管理 pack ...
- D1-Linux-CentOS学习打卡
从一月底开始萌生了想在继续学Python的时候,学一门新的操作系统. 在看很多程序员的JD时,很多都要求熟悉LINUX,并且奔方法里面也提到了在LINUX下的编程. ----------------- ...
- QT VS检测内存泄漏
测试程序:http://download.csdn.net/detail/ajaxhe/4085447 vld-2.2.3: http://vld.codeplex.com/releases/view ...
- Error Unable to start the Genymotion virtual device.解决
The Genymotion virtual device could not obtain an IP address.For an unknown reason.VirtualBox DHCP h ...