java - 在刷新刷新之前清除列表视图
问题描述
我有一个列表视图,我从 JSON 中填充它。我已应用 Swiperefresh 布局再次清除并重新填充列表视图。
但我的问题不是清除旧项目,而是在旧项目的底部添加新价值。但我想彻底清除一切,然后从头开始添加新的价值。
这是我的代码
mSwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
mSwipeRefreshLayout.setRefreshing(true);
mExampleList.clear();
mExampleAdapter.notifyDataSetChanged();
parseJSON();
}
}
);
}
}
private void parseJSON() {
String url = getIntent().getStringExtra(EXTRA_URL);
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
myProgressBar.setVisibility(View.GONE);
try {
JSONArray jsonArray = response.getJSONArray("hits");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject hit = jsonArray.getJSONObject(i);
String videoTitle = hit.getString("title");
String link = hit.getString("link");
// String notes = hit.getString("notes");
// String question = hit.getString("question");
// String imageUrl = hit.getString("webformatURL");
// int likeCount = hit.getInt("likes");
mExampleList.add(new ExampleItem(videoTitle,link));
mExampleAdapter.notifyDataSetChanged();
}
} catch (JSONException e) {
e.printStackTrace();
}
mSwipeRefreshLayout.setRefreshing(false);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
mSwipeRefreshLayout.setRefreshing(false);
}
});
mRequestQueue.add(request);
}
谁能帮我 ?
解决方案
替换您的以下代码
mSwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
mSwipeRefreshLayout.setRefreshing(true);
mExampleList.clear();
mExampleAdapter.notifyDataSetChanged();
parseJSON();
}
}
);
到
updateListContent();
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
updateListContent();
}
});
}
创建一个将数据更新到列表的方法:
public void updateListContent() {
mSwipeRefreshLayout.setRefreshing(true);
if(mExampleList != null)
mExampleList.clear();
parseJSON();
}
推荐阅读
- observable - Angular 9 - Guard:canActivate 等到满足特定条件
- xquery - 参数 2 的基数与函数签名中声明的基数不匹配:(...)
- xml - XSLT:仅将包含文本的 XML 转换为 XML
- c# - 如何将模型从一个视图传递到另一个视图?
- git - 显示所有提交到 diff
- diff - 如何仅区分某些文件?
- reactjs - 从 Redux 存储更新组件状态
- python - Matplotlib:在直方图的刻度标签中指定 bin 值的格式
- javascript - 在所有时区中使用 JavaScript 将 Excel 日期序列号转换为日期
- c - 如何从 32 位程序中获取 64 位“程序文件”文件夹路径