首先我们把Xlistview的类包倒入工程
然后创建两个布局,头部和底部的布局:
头部布局:xlistview_footer.xml
底部布局:xlistview_header.xml
values文件下的strings.xml
下拉刷新 松开刷新数据 正在加载... 上次更新时间: 查看更多 松开载入更多
MainActivity的布局:
这是主代码引用Xlistveiw的方法:
public class MainActivity extends Activity implements IXListViewListener { int catalog = 1; int pageIndex = 1; int pageSize = 20; private XListView xlv; private Listlistnews; private List alllistnews = new ArrayList (); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv = (XListView) findViewById(R.id.xlv_main); xlv.setPullLoadEnable(true); xlv.setPullRefreshEnable(true); xlv.setXListViewListener(this); gethttp(); } private void gethttp() { // TODO Auto-generated method stub String url = "http://www.oschina.net/action/api/news_list?catalog=1&pageIndex=" + pageIndex + "&pageSize=20"; HttpUtils httpUtils = new HttpUtils(); httpUtils.send(HttpMethod.GET, url, new RequestCallBack () { @Override public void onFailure(HttpException arg0, String arg1) { // TODO Auto-generated method stub Log.i("TAG", "----------请求失败了---------------"); } @Override public void onSuccess(ResponseInfo arg0) { // TODO Auto-generated method stub // Log.i("TAG", result.toString()); // 解析xml数据 XStream stream = new XStream(); stream.processAnnotations(XmlData.class); XmlData xdata = (XmlData) stream.fromXML(arg0.result); listnews = xdata.getNewslist().getNews(); // Log.i("TAG", xdata.toString()); alllistnews.addAll(listnews); xlv.setAdapter(new Myadapter(getApplicationContext(), alllistnews)); } }); } @Override public void onRefresh() { // TODO Auto-generated method stub pageIndex++; listnews.clear(); alllistnews.clear(); gethttp(); onLoad(); } @Override public void onLoadMore() { // TODO Auto-generated method stub pageIndex++; gethttp(); onLoad(); } private void onLoad() { // TODO Auto-generated method stub xlv.stopRefresh(); xlv.stopLoadMore(); // 设置日期格式 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 获取当前系统时间 String nowTime = df.format(new Date(System.currentTimeMillis())); // 释放时提示正在刷新时的当前时间 xlv.setRefreshTime(nowTime); }}