XML解析

来源:互联网 发布:美女图片源码带采集 编辑:程序博客网 时间:2024/06/05 06:50
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);// 释放时提示正在刷新时的当前时间
}
}

0 0