public class TaskList extends AppCompatActivity implementsXListView.IXListViewListener {//创建xlistview对象
privateXListView mListView;//创建数据
List dataList = new ArrayList<>();privateObject item;int page = 1;int maxpage = 0;//用来执行耗时操作
privateHandler mHandler;/*** Called when the activity is first created.*/@Overridepublic voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.tasklist);//指定布局中的xlistview控件
mListView =(XListView) findViewById(R.id.xListView);
mListView.setPullLoadEnable(true);
mListView.setPullRefreshEnable(true);
getTaskList(page);
mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
mListView.setXListViewListener(this);
mHandler= newHandler(){
@Overridepublic voidhandleMessage(Message msg) {switch(msg.what){case 0x001:
Toast.makeText(TaskList.this , "已无更多数据", Toast.LENGTH_SHORT).show();break;case 0x002:
Toast.makeText(TaskList.this , "未找到数据", Toast.LENGTH_SHORT).show();break;
}
}
};
}//获得数据后要执行onLoad()方法,否则刷新会一直进行停不下来
private voidonLoad() {
mListView.stopRefresh();
mListView.stopLoadMore();
mListView.setRefreshTime("刚刚");
}
@Overridepublic voidonRefresh() {
dataList.clear();
page= 1;
mHandler.post(newRunnable() {//执行耗时操作
@Overridepublic voidrun() {
getTaskList(page);
mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
}
});
onLoad();
Log.i("------------------", "onRefresh");
}
@Overridepublic voidonLoadMore() {
mHandler.post(newRunnable() {
@Overridepublic voidrun() {if(page
getTaskList(++page);
mListView.deferNotifyDataSetChanged();
}else{
Message msg= newMessage();
msg.what=0x001;
mHandler.sendMessage(msg);
}//getTaskList(++page);//mListView.deferNotifyDataSetChanged();//mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
}
});
onLoad();
Log.i("------------------", "onLoadMore");
}/***
* 获取list数据 volley 方法 post string数据 得到 json数据 服务端由php编写
*
**/
public void getTaskList(intpages) {
Toast.makeText(TaskList.this , pages+"", Toast.LENGTH_SHORT).show();
RequestQueue mreuestQueut= Volley.newRequestQueue(this);final Gson gson = newGson();
JsonObjectRequest jsreq= new JsonObjectRequest(Request.Method.GET, TASK_LIST_DATE+"page="+pages, null,new Response.Listener() {
@Overridepublic voidonResponse(JSONObject jsonObject) {
Message msg= newMessage();try{int code = jsonObject.getInt("code");if(code == 200){int size = jsonObject.getJSONArray("data").length();for(int i=0; i
JSONObject dataObject= jsonObject.getJSONArray("data").getJSONObject(i);
String title= dataObject.getString("title");
String price= dataObject.getString("fee");
String explain= dataObject.getString("description");
dataList.add(new ItemBean(title , explain , price , "3km"));
}
maxpage= ++page;
page= page-1;
}else if(code == 205){//已无更多数据//maxpage = page;
page =maxpage;
msg.what=0x001;
mHandler.sendMessage(msg);
}else if(code == 404){//未找到数据
msg.what = 0x002;
mHandler.sendMessage(msg);
}
}catch(JSONException e) {
e.printStackTrace();
Log.i("----------------", "客户端内部错误");
}
}
},newResponse.ErrorListener() {
@Overridepublic voidonErrorResponse(VolleyError volleyError) {
Log.i("----------------","服务器出错"+volleyError.toString());
}
});
mreuestQueut.add(jsreq);
}
}