使用listview时,下拉刷新必不可少,但是刷新的时候新手应该会出现一些小毛病,比如:1我怎么刷新一次,数据就多了一倍
2我怎么刷新一次,没有变化
3刷新完之后,什么数据都不显示了
这三个问题仿佛是个一环接一环的套路! 数据多一倍,很显然你忘记list.clear();了
所以你刷一次就多一倍。
没有变化和什么都不显示,我也遇到过,也解决了 是看了网上的大神说,可能是你list的堆内存的指向问题,list.clear();该往哪放,其实道理我也不懂
@Override
public void onSuccess(String s) {
Log.i(TAG, "---------------onSuccess: "+s);
try {
JSONObject jsonObject = new JSONObject(s);
JSONArray jsonArray = jsonObject.getJSONArray("data");
lists.clear();
for (int i = 0 ; i < jsonArray.length() ; i++){
jsonObject = jsonArray.getJSONObject(i);
int id = jsonObject.getInt("id");
String name = jsonObject.getString("name");
String imagePath = jsonObject.getString("picSmall");
DataBean bean = new DataBean(id,name,imagePath);
Log.i(TAG, "onSuccess:--------------------------------------------------------------"+bean.getId());
Log.i(TAG, "onSuccess:--------------------------------------------------------------"+bean.getName());
Log.i(TAG, "onSuccess:--------------------------------------------------------------"+bean.getPicSmall());
lists.add(bean);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
反正我是在你要往list里面添加数据之前紧挨着写的,就没出现过错误,希望有这个疑难杂症的可以试着解决一下