博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取 xml 到list
阅读量:5790 次
发布时间:2019-06-18

本文共 2035 字,大约阅读时间需要 6 分钟。

String fileName = "AdapterModultSetting.xml";

MainSettingData mainSettingData = null;

SubSettingData subSettingData = null;

List<MainSettingData> mainSettingDatas = null;

List<SubSettingData> subSettingDatas = null;

//第一步--------读SharedPreferences

//第一步--------从assets中获得xml数据

InputStream is = mContext.getResources().getAssets().open(fileName);

XmlPullParser parse = Xml.newPullParser();

parse.setInput(is, "utf-8");

int type = parse.getEventType();

while (type != XmlPullParser.END_DOCUMENT) {

switch (type) {

case XmlPullParser.START_DOCUMENT:

mainSettingDatas = new ArrayList<MainSettingData>();

break;

case XmlPullParser.START_TAG:

Log.i("测试数据", parse.getName());

if ("main_menu_data".equals(parse.getName())) {

mainSettingData = new MainSettingData();

mainSettingData.setId(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "id")));//save parameter

mainSettingData.setTitle(parse.getAttributeValue(parse.getNamespace(), "title"));

subSettingDatas = new ArrayList<SubSettingData>();//子菜单

}

if (mainSettingData != null) {

if ("sub_menu_data".equals(parse.getName())) {

subSettingData = new SubSettingData();

subSettingData.setId(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "id")));

subSettingData.setType(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "type")));

subSettingData.setSubTitle(parse.getAttributeValue(parse.getNamespace(), "subTitle"));

subSettingData.setSubState(parse.getAttributeValue(parse.getNamespace(), "subState"));

subSettingData.setSubValue(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "subValue")));

}

}

break;

case XmlPullParser.END_TAG:

if ("main_menu_data".equals(parse.getName())) {

if(subSettingData != null && subSettingDatas != null){

subSettingDatas.add(subSettingData);

}

if (mainSettingData != null && mainSettingDatas != null) {

if(subSettingDatas != null){

mainSettingData.setSubSettingDatas(subSettingDatas);//子菜单加入主菜单

}

mainSettingDatas.add(mainSettingData);

}

}

break;

}

type = parse.next();

}

is.close();

数据在mainSettingDatas中

转载地址:http://ytgyx.baihongyu.com/

你可能感兴趣的文章
JS prototype 属性
查看>>
HTTP库Axios
查看>>
gen already exists but is not a source folder. Convert to a source folder or rename it 的解决办法...
查看>>
20个Linux服务器性能调优技巧
查看>>
填坑记:Uncaught RangeError: Maximum call stack size exceeded
查看>>
SpringCloud之消息总线(Spring Cloud Bus)(八)
查看>>
【348天】每日项目总结系列086(2018.01.19)
查看>>
【294天】我爱刷题系列053(2017.11.26)
查看>>
可替换元素和非可替换元素
查看>>
2016/08/25 The Secret Assumption of Agile
查看>>
(Portal 开发读书笔记)Portlet间交互-PortletSession
查看>>
搭建vsftpd服务器,使用匿名账户登入
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
Java虚拟机管理的内存运行时数据区域解释
查看>>
人人都会深度学习之Tensorflow基础快速入门
查看>>
ChPlayer播放器的使用
查看>>
js 经过修改改良的全浏览器支持的软键盘,随机排列
查看>>
Mysql读写分离
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>