插件化—配置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 ...
随机推荐
- HDOJ 1043 Eight(A* 搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 思路分析: <1> 搜索算法: A*算法, Heuristic函数:曼哈顿距离 &l ...
- HDU 1104 Remainder( BFS(广度优先搜索))
Remainder Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- js遍历对象的属性并且动态添加属性
var person= { name: 'zhangsan', pass: '123' , 'sni.ni' : 'sss', hello:function (){ for(var i=0;i< ...
- poj2125Destroying The Graph(最小割+输出方案)
题目请戳这里 题目大意:给一张有向图,现在要选择一些点,删掉图中的所有边.具体操作为:选择点i,可以选择删除从i出发的所有有向边或者进入i的所有有向边,分别有个代价ini和outi,求最小的代价删掉所 ...
- 【Java】【Fulme】Flume-NG源代码阅读之SpoolDirectorySource
org.apache.flume.source.SpoolDirectorySource是flume的一个经常使用的source,这个源支持从磁盘中某目录获取文件数据.不同于其它异步源,这个源可以避免 ...
- 百度前端技术学院Html&CSS学习资源
Web相关名词通俗解释 https://www.zhihu.com/question/22689579 MDN HTML入门 https://developer.mozilla.org/zh-CN/d ...
- BZOJ 1123: [POI2008]BLO( tarjan )
tarjan找割点..不是割点答案就是(N-1)*2, 是割点的话就在tarjan的时候顺便统计一下 ------------------------------------------------- ...
- Android发送数据到web服务器4种方式
1./** 2. * Android中向web服务器提交数据的两种方式四种方法 3. */ 4.public class SubmitDataByHttpClientAndOrdinaryWay { ...
- [置顶] 程序员必知(二):位图(bitmap)
位图是什么? 位图就是数组,一般来说是bit型的数组,具有快速定位某个值的功能,这种思想有很广泛的应用,比如下边两题: 1 找出一个不在5TB个整数中存在的数 假设整数是32位的,总共有4GB个数,我 ...
- Oracle Split 函数
为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行 ...