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的更多相关文章

  1. wemall app商城源码Android数据的SharedPreferences储存方式

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据 ...

  2. wemall app商城源码Android之支付宝通知处理类

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处 ...

  3. wemall app商城源码Android之支付宝接口公用函数

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之  ...

  4. wemall app商城源码Android之ListView异步加载网络图片(优化缓存机制)

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之L ...

  5. wemall app商城源码Android之Native(原生)支付模式一demo

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Native(原生)支付模式一demo,供技术 ...

  6. wemall app商城源码Android短信监听接收器

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  7. wemall app商城源码Android中ViewHolder详细解释

    1.ViewHolder的解释: (1).只是一个静态类,不是Android的API方法. (2).它的作用就在于减少不必要的调用findViewById,然后把对底下的控件引用存在ViewHolde ...

  8. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  9. wemall app商城源码机器人检测

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...

随机推荐

  1. HTML <div> 和<span>

    HTML <div> 和<span> HTML 可以通过 <div> 和 <span>将元素组合起来. HTML 区块元素 大多数 HTML 元素被定义 ...

  2. Java反射机制示例

    链接: http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html package com.stono.reftest; imp ...

  3. JS-鼠标滚轮事件 和 阻止默认行为

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. SQL Server 2014内存优化表的使用场景

    SQL Server 2014内存优化表的使用场景 最近一个朋友找到走起君,咨询走起君内存优化表如何做高可用的问题 大家知道,内存优化表是从SQL Server 2014开始引入,可能大家对内存优化表 ...

  5. 离职了,在家温故而知新----1 设计模式 & 开头

    工作四年有余,编写的代码都是业务代码.不涉及低层. 目前离职在家,过年完了,准备找工作了. 决定温故而知新,复习也是学习. 本着随遇而安的原则,随便从之前设计的众多条目中选择了一条开始复习. 设计模式 ...

  6. MYSQL:基础—存储过程

    MYSQL:基础-存储过程 快速入门 理解: 迄今为止,我们学过的大多数SQL语句都是针对一个或多个表的单条语句.但是并不是所有的操作都是可以用一条语句来完成的,经常有一些操作是需要多条语句配合才能完 ...

  7. [CSS3] 学习笔记-CSS定位

    页面的设计需要通过摆放不同的模块在不同的位置,这个时候需要使用到定位和浮动的知识点,CSS3定位功能是很强大的,利用它你可以做出各种各样的网络布局. 1.CSS定位 1)定位机制 普通流:元素按照其在 ...

  8. 第一章:JavaScript简介

    1:JavaScript诞生于1995年 2:一个完整的JavaScript实现应该由三部分组成 * 核心(ECMAScript):提供核心语言功能 *文档对象模型(DOM):提供访问和操作网页内容的 ...

  9. IOS控件布局之Masonry布局框架

    前言: 回想起2013年做iOS开发的时候,那时候并没有采用手写布局代码的方式,而是采用xib文件来编写,如果使用纯代码方式是基于window的size(320,480)计算出一个相对位置进行布局,那 ...

  10. (原创)Java多线程作业题报java.lang.IllegalMonitorStateException解决

    作业: 有一个水池,水池容量500L,一边为进水口,一边为出水口,要求进水放水不能同时进行,水池一旦满了不能继续注水,一旦空了,不能继续放水,进水速度5L/s,放水速度2L/s. 这是我学多线程时做的 ...