xlistview的写法

我相信 每个人每个人都能找到源代码

3个java文件和2个布局 1张图片

package com.example.day5zhaoukao2;

import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import com.example.adapter.MyAdapter;
import com.example.data.News;
import com.example.data.Oschina;
import com.example.xlist.XListView;
import com.example.xlist.XListView.IXListViewListener;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
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 android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;


public class MainActivity extends Activity implements IXListViewListener{
	private XListView xListView;
	private List<News> list;
	private MyAdapter adapter;
	private int pageIndex=1;
	private List<News> alllist=new ArrayList<News>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        xListView=(XListView) findViewById(R.id.listview);
        adapter=new MyAdapter(MainActivity.this);
        xListView.setPullLoadEnable(true);
        xListView.setPullRefreshEnable(true);
        xListView.setXListViewListener(this);
        new Thread(){
        	public void run() {
        		infoa(pageIndex);
        	};
        }.start();
        
    }

    
    
	protected void infoa(int pageIndex) {
		// TODO Auto-generated method stub
		String url="http://www.oschina.net/action/api/news_list";
		HttpUtils httpUtils=new HttpUtils();
		RequestParams params=new RequestParams();
	    params.addBodyParameter("catalog", 1+"");
	    params.addBodyParameter("pageIndex", pageIndex+"");
	    params.addBodyParameter("pageSize", 10+"");
		httpUtils.send(HttpMethod.POST, url, params, new RequestCallBack<String>() {

			@Override
			public void onFailure(HttpException arg0, String arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onSuccess(ResponseInfo<String> arg0) {
				// TODO Auto-generated method stub
				XStream xStream=new XStream();
				xStream.processAnnotations(Oschina.class);
				Oschina fromXML = (Oschina) xStream.fromXML(arg0.result);
				list=fromXML.getNewslist().getNews();
				runOnUiThread(new Runnable() {
					
					@Override
					public void run() {
						// TODO Auto-generated method stub
						xListView.setAdapter(adapter);
						alllist.addAll(list);
						adapter.addrest(alllist);
						
						xListView.setOnItemClickListener(new OnItemClickListener() {

							@Override
							public void onItemClick(AdapterView<?> parent,
									View view, int position, long id) {
								// TODO Auto-generated method stub
								Intent in=new Intent(MainActivity.this,XActivity.class);
								Bundle b=new Bundle();
								b.putString("a", alllist.get(position).getTitle());
								in.putExtras(b);
								startActivity(in);
							}
						});
					}
				});
			}
		});
	}



	protected void info(int pageIndex) {
		
		// TODO Auto-generated method stub
		String url="http://www.oschina.net/action/api/news_list?catalog=1&pageIndex="+pageIndex+"&pageSize=10";
		HttpClient httpClient=new DefaultHttpClient();
		HttpGet httpGet=new HttpGet(url);
		try {
			HttpResponse execute = httpClient.execute(httpGet);
			StatusLine statusLine = execute.getStatusLine();
			int statusCode = statusLine.getStatusCode();
			Log.i("String", statusCode+"");
			if(statusCode==200){
				InputStream content = execute.getEntity().getContent();
				Log.i("String", "1");
				XStream xStream=new XStream();
				xStream.processAnnotations(Oschina.class);
				Oschina fromXML = (Oschina) xStream.fromXML(content);
				list=fromXML.getNewslist().getNews();
				Log.i("String", list.toString());
				runOnUiThread(new Runnable() {
					
					@Override
					public void run() {
						// TODO Auto-generated method stub
						xListView.setAdapter(adapter);
						alllist.addAll(list);
						adapter.addrest(alllist);
					}
				});
				
			}
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}



	@Override
	public void onRefresh() {
		// TODO Auto-generated method stub
		pageIndex++;
		list.clear();
		alllist.clear();
		infoa(pageIndex);
		onLoad();
	}



	@Override
	public void onLoadMore() {
		// TODO Auto-generated method stub
		pageIndex++;
		infoa(pageIndex);
		onLoad();
	}
    
	 public void onLoad() {

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值