这个是MainActivity的代码
package com.bwei.Xlist;
import java.util.ArrayList;
import android.app.Activity;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.Toast;
import com.bwei.Xlist.View.XListView;
import com.bwei.Xlist.View.XListView.IXListViewListener;
import com.bwei.Xlist.bean.JinD;
import com.bwei.Xlist.bean.JinD.Results;
import com.google.gson.Gson;
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;
public class MainActivity extends Activity implements IXListViewListener {
private final String TAG = "XListViewActivity";
private XListView mListView;
private Handler mHandler;
private int page = 1;
private MyAdapter myAdapter;
ArrayList<Results> rList = new ArrayList<Results>();
String url = "http://apis.haoservice.com/lifeservice/cook/query?menu=番茄&pn="
+ page + "&rn=10&key=931418edacf742c4b0fc8a6cf39812fd";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 判断是否联网
ConnectivityManager con = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
boolean wifi = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.isConnectedOrConnecting();
boolean internet = con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.isConnectedOrConnecting();
if (wifi | internet) {
init();
} else {
Toast.makeText(MainActivity.this, "亲,网络上了么?", Toast.LENGTH_LONG)
.show();
}
}
/**
* 初始化数据
*/
private void init() {
mListView = (XListView) findViewById(R.id.lv_main_listView);
// 设置数据
ArrayList<Results> geneItems = geneItems();
myAdapter = new MyAdapter(MainActivity.this);
myAdapter.addrest(geneItems);
mListView.setAdapter(myAdapter);
// 设置是否可以上拉
mListView.setPullLoadEnable(true);
// 设置是否可以下拉
mListView.setPullRefreshEnable(true);
// 设置上拉下拉的监听
mListView.setXListViewListener(this);
mHandler = new Handler();
}
/**
* 设置数据
*/
private ArrayList<Results> geneItems() {
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpMethod.GET, url, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(MainActivity.this, "请求失败", 0).show();
}
@Override
public void onSuccess(ResponseInfo<String> info) {
String result = info.result;
System.out.println(result + "/*-/*-/*-");
Gson gson = new Gson();
JinD jinD = gson.fromJson(result, JinD.class);
System.out.println(jinD.result.get(0).title);
rList.addAll(jinD.result);
System.out.println(rList.size());
}
});
return rList;
}
/**
* 结束加载
*/
private void onLoad() {
mListView.stopRefresh();
mListView.stopLoadMore();
mListView.setRefreshTime("刚刚");
}
/**
* 下拉刷新
*/
@Override
public void onRefresh() {
Log.i(TAG, "刷新最新");
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
ArrayList<Results> geneItems = geneItems();
myAdapter.addrest(geneItems);
onLoad();
}
}, 2000);
}
/**
* 上拉加载
*/
@Override
public void onLoadMore() {
Log.i(TAG, "加载更多");
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
++page;
ArrayList<Results> geneItems = geneItems();
myAdapter.addrest(geneItems);
onLoad();
}
}, 2000);
}
}
这个是Adapter的代码
package com.bwei.Xlist;
import java.util.ArrayList;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.bwei.Xlist.bean.JinD.Results;
public class MyAdapter extends BaseAdapter {
Context context;
ArrayList<Results> rList = new ArrayList<Results>();
public MyAdapter(Context context) {
this.context = context;
}
public void addrest(ArrayList<Results> reList) {
rList.clear();
rList.addAll(reList);
this.notifyDataSetChanged();
}
@Override
public int getCount() {
return rList.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
View view = View.inflate(context, R.layout.list_item, null);
TextView textView = (TextView) view.findViewById(R.id.list_item_textview);
textView.setText(rList.get(arg0).title);
return view;
}
}
当然还有重要的XListView