/*
* 异步加载数据
* */
class LoadDataAsyncTask extends AsyncTask<Void,Void,String>{
Fragment_show show;
public LoadDataAsyncTask(Fragment_show show){
this.show = show;
}
@Override
protected String doInBackground(Void... params) {
getJsonData();
return "success";
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s.equals("success")){
mAdapter = new ListAdapter(getActivity());
mAdapter.notifyDataSetChanged();
show.lv.setAdapter(mAdapter);
}
show.lv.onRefreshComplete();//表示刷新完成
}
}
在上面这块代码中 getJsonData() 表示需要加载的数据 来看下一下getJsonData()
public void getJsonData(){
list = new ArrayList<MyData>();
JsonArrayRequest request = null;
try {
request = new JsonArrayRequest(
new URL(url).toString(),
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray jsonArray) {
System.out.print("已经执行response");
list.clear();
for (int i=0;i<jsonArray.length();i++){
WaterBean mWaterBean ;
try {
mWaterBean = new Gson().fromJson(jsonArray.getJSONObject(i).toString(),WaterBean.class);
MyData myData = new MyData();
String num = mWaterBean.getNum();//获取编号
myData.num = mWaterBean.getNum();
String point = mWaterBean.getPoint();//获取经纬度
myData.point = mWaterBean.getPoint();
String address = mWaterBean.getAddress();//获取位置
myData.address = mWaterBean.getAddress();
String imgPath =mWaterBean.getImgPath();//获取图片位置
myData.path = mWaterBean.getImgPath();
double pressure = mWaterBean.getPressure();//获取水泵压力
String strPressure = ""+pressure;
myData.strPressure = strPressure;
list.add(myData);
mAdapter.notifyDataSetChanged();
Log.e("TAG","编号为:"+num+"经纬度为:"+point+"位置为:"+address+"图片位置为:"+imgPath+"水泵压力为:"+strPressure);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.e("TAG", "");
}
}
);
} catch (MalformedURLException e) {
e.printStackTrace();
}
queue.add(request);
}
添加的为一组list数组,由于下拉刷新时会重复执行这个方法,所以list数组会重复加载数据,所以在加载数据之前把list.clear()一下 即可重新得到服务器上传的数据