您的位置:首页 > 其它

XML解析

2016-04-01 09:12 302 查看
new Thread(new Runnable(){
@Override
public void run() {
XStream xs = new XStream();
xs.processAnnotations(ZiXun.class);

try {

//ZiXun为Bean类,可更改

ZiXun fromXML = (ZiXun) xs.fromXML(new URL(url[position]));
list=fromXML.getNewslist().getNews();
} catch (MalformedURLException e) {
e.printStackTrace();
}
getActivity().runOnUiThread(new Runnable(){ 
@Override
public void run() {
adapter=new MyAdapter(getActivity(), list);
mListView.setAdapter(adapter);
}
});
}

}).start();

//第二种方式带刷新

package com.bwie.lv;

import java.net.MalformedURLException;

import java.net.URL;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import me.maxwin.view.XListView;

import me.maxwin.view.XListView.IXListViewListener;

import com.bwie.lv.ZiXun.NewsList.News;

import com.lidroid.xutils.HttpUtils;

import com.lidroid.xutils.exception.HttpException;

import com.lidroid.xutils.http.ResponseInfo;

import com.lidroid.xutils.http.callback.RequestCallBack;

import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

import com.thoughtworks.xstream.XStream;

import com.thoughtworks.xstream.io.xml.DomDriver;

import android.os.Bundle;

import android.os.Handler;

import android.support.annotation.Nullable;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

public class Fragment1 extends Fragment implements IXListViewListener {
private ArrayList<News> list;
private MyAdapter adapter;
private View view;
private XListView mListView;
private Handler mHandler;
private int start = 0;
private static int refreshCnt = 0;
private String url;
private int index=1;

@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment, container, false);
return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mListView = (XListView) view.findViewById(R.id.xListView);
mListView.setPullLoadEnable(true); // 上拉加载默认为false
mListView.setPullRefreshEnable(true);// 下拉刷新默认为true
mListView.setXListViewListener(this);
mHandler = new Handler();
getInfo();
}

private void getInfo() {
url = "http://www.oschina.net/action/api/news_list?catalog=1&pageIndex="+index+"&pageSize=10";
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpMethod.GET, url, new RequestCallBack<String>() {

@Override
public void onFailure(HttpException arg0, String arg1) {

}

@Override
public void onSuccess(ResponseInfo<String> arg0) {
index++;
String xml = arg0.result;
XStream stream = new XStream(new DomDriver());
stream.processAnnotations(ZiXun.class);
ZiXun bean = (ZiXun) stream.fromXML(xml);
list = bean.newslist.news;
adapter = new MyAdapter(getActivity(), list);
mListView.setAdapter(adapter);
}
});
}

/* IXListViewListener接口的第一个方法,完成在刷新数据时的操作 */
@Override
public void onRefresh() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
start = ++refreshCnt;
getInfo();
adapter.notifyDataSetChanged();
onLoad();/* 设置头部刷新时间 */
// 为了获得上次刷新时间,不用下面新建adapter
}
}, 2000);
}

/* IXListViewListener接口的第二个方法,完成在上拉加载数据时的操作 */
@Override
public void onLoadMore() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
getInfo();
adapter.notifyDataSetChanged();
onLoad();/* 设置头部刷新时间 */
}
}, 2000);
}

/* 设置头部刷新时间 */
private void onLoad() {
mListView.stopRefresh();
mListView.stopLoadMore();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
String nowTime = df.format(new Date(System.currentTimeMillis()));// 获取当前系统时间
mListView.setRefreshTime(nowTime);// 释放时提示正在刷新时的当前时间
}

}

9741
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: