wemall app商城源码Android 获取XML网络数据并绑定到ListView
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享Android 获取XML网络数据并绑定到ListView,对数据进行获取并显示代码信息,供技术员参考学习。
1、添加ListView中每一项的item
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/record" android:layout_width="230dp" android:layout_height="wrap_content" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
2、添加实体类NewsObj
public class NewsObj implements Serializable { private String name; private int id; }// 省去属性get和set方法
3、添加一个类用于处理请求消息
public class NewsService { // 解析XML数据 private static List parseXML(InputStream ins) throws Exception { List list = new ArrayList(); NewsObj obj = null; XmlPullParser parser = Xml.newPullParser(); parser.setInput(ins, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_TAG: if ("news".equals(parser.getName())) { int id = new Integer(parser.getAttributeValue(0)); obj = new NewsObj(); obj.setId(id); } else if ("name".equals(parser.getName())) { obj.setName(parser.nextText()); } break; case XmlPullParser.END_TAG: if ("news".equals(parser.getName())) { list.add(obj); obj = null; } break; } event = parser.next(); } return list; } // 获取最新的资讯 public static List getLastnews(String Urlpath) throws Exception { URL url = new URL(Urlpath); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); Log.i("CONN", conn.toString()); if (conn.getResponseCode() == 200) { InputStream ins = conn.getInputStream(); return parseXML(ins); } return null; } }
4、修改MainActivity
public class MainActivity extends Activity { private Handler handler; private SimpleAdapter adapter; private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); handler = new Handler(); new Thread(runa).start(); } private Runnable setadapter = new Runnable() { @Override public void run() { lv.setAdapter(adapter); } }; private void SetView() { try { List videos = NewsService.getLastnews("http://10.0.2.2:4484/WebSite1/XMLFile.xml"); List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); for (NewsObj news : videos) { HashMap<String, Object> item = new HashMap<String, Object>(); item.put("id", news.getId()); item.put("name", news.getName()); data.add(item); } adapter = new SimpleAdapter(getApplicationContext(), data, R.layout.item, new String[] { "id", "name" }, new int[] { R.id.record, R.id.name }); handler.post(setadapter); // 添加一个任务到主线程的handler!!! } catch (Exception e) { e.printStackTrace(); } } private Runnable runa = new Runnable() { @Override public void run() { Looper.prepare(); SetView(); } }; }
5、添加一个web测试项
上一步中网站请求地址返回的数据如下
<?xml version="1.0" encoding="utf-8" ?> <videos> <news id ="11"> <name>hello world</name> </news> <news id ="12"> <name>Livingstone</name> </news> </videos>
6、添加网络访问权限,运行程序
原文详情地址:http://Git.oschina.NET/zzunet/wemall-doraemon/commit/e8f303df5663dc69fe47bb9623222149d40e3956
wemall doraemonAndroid app商城详情地址:http://www.koahub.com/home/product/55
wemall官网地址:http://www.wemallshop.com
wemall 开源微商城 ,微信商城,商城源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统
wemall app商城源码Android 获取XML网络数据并绑定到ListView的更多相关文章
- wemall app商城源码Android数据的SharedPreferences储存方式
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据 ...
- wemall app商城源码Android之支付宝通知处理类
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处 ...
- wemall app商城源码Android之支付宝接口公用函数
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
- wemall app商城源码Android之ListView异步加载网络图片(优化缓存机制)
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之L ...
- wemall app商城源码Android之Native(原生)支付模式一demo
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Native(原生)支付模式一demo,供技术 ...
- wemall app商城源码Android短信监听接收器
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- wemall app商城源码Android中ViewHolder详细解释
1.ViewHolder的解释: (1).只是一个静态类,不是Android的API方法. (2).它的作用就在于减少不必要的调用findViewById,然后把对底下的控件引用存在ViewHolde ...
- wemall app商城源码android开发MD5加密工具类
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...
- wemall app商城源码机器人检测
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
随机推荐
- 使用AngularJS的三个重要原因
入门教程:http://www.ituring.com.cn/minibook/303 : http://angularjs.cn/tag/AngularJS 原因一:Google开发的框架 要知道开 ...
- 基于Daydream technical preview GVR13开发Daydream,Cardboard的Android应用
本文用Unity的Daydream Preview GVR13版本开发同时兼容Daydream和Cardboard的Android应用,Android Studio版本为2.2.3. 下载最新Dayd ...
- hessian原理解析一(客户端分析)
hessian 是一款开源的二进制远程通讯协议,使用简单方法提供了RMI功能,主要用于面向对象的消息通信. 优点:跨平台.多语言支持.使用简单 缺点:传递复杂对象性能会下降,不适合安全性高的应用 一 ...
- selenium相关面试题
selenium中如何判断元素是否存在? selenium中hidden或者是display = none的元素是否可以定位到? selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元 ...
- POJ2187(旋转卡壳)
Beauty Contest Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 35459 Accepted: 10978 ...
- A tutorial on Principal Components Analysis | 主成分分析(PCA)教程
A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components A ...
- BZOJ 1497: [NOI2006]最大获利(最大权闭合子图)
1497: [NOI2006]最大获利 Time Limit: 5 Sec Memory Limit: 64 MB Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机 ...
- 创建 vxlan 并部署 instance - 每天5分钟玩转 OpenStack(147)
上一节我们完成了 OVS VxLAN 的配置工作,今天创建 vxlan100_net 并部署 instance. 创建 vxlan100_net 打开菜单 Admin -> Networks,点 ...
- MongoDB基础之五:游标
1.cursor(游标)是什么 ? 通俗的说,游标不是查询结果,而是查询的返回资源,或者接口. 通过这个接口,你可以逐条读取. 就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行 ...
- 【前端】:css
前言: 关于前端的第二篇博客,会写关于css的,内容比较基础.写完这篇博客,会做一个类似美乐乐家具的界面.good luck to me~ 一.css-引用样式 标签上设置style属性: <b ...