【发布时间】:2015-12-05 19:07:42
【问题描述】:
我有一个 ListView,它从我创建的 JSON 适配器读取数据。由于我的 API 限制为每页 10 个结果,因此我希望在用户到达列表视图末尾时显示更多结果。
这是我目前创建的:
以下代码正在创建列表并检查用户是否到达列表末尾。此代码位于我的 Fragment 中。
mainListView = (StickyListHeadersListView) v.findViewById(R.id.main_listview);
mJSONAdapter = new JSONAdapter(getActivity(), inflater);
mainListView.setAdapter(mJSONAdapter);
mainListView.setOnScrollListener(new AbsListView.OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
// Check if we reached the end of the list
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (firstVisibleItem + visibleItemCount == totalItemCount && totalItemCount != 0) {
searchDistance = sharedPrefs.getDistance(getActivity());
if (flag_loading == false) {
flag_loading = true;
query(param1, param2, param3, **PAGE NUMBER**);
}
}
}
});
这是我的 query() 方法:
private void query(double param1, double param2, int param3, int page) {
// Create a client to perform networking
AsyncHttpClient client = new AsyncHttpClient();
// Show ProgressDialog to inform user that a task in the background is occurring
mProgress.setVisibility(View.VISIBLE);
// Have the client get a JSONArray of data
// and define how to respond
client.get(MY_API_URL + "?param1=" + param1 + "¶m2=" + param2 + "¶m3=" + param3 + "&page=" + page,
new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject jsonObject) {
// 11. Dismiss the ProgressDialog
mProgress.setVisibility(View.GONE);
// update the data in your custom method.
mJSONAdapter.updateData(jsonObject.optJSONArray("docs"));
}
@Override
public void onFailure(int statusCode, Throwable throwable, JSONObject error) {
// 11. Dismiss the ProgressDialog
mProgress.setVisibility(View.GONE);
getActivity().setContentView(R.layout.bad_connection);
}
});
}
mJSONAdapter.updateData():
public void updateData(JSONArray jsonArray) {
// update the adapter's dataset
mJsonArray = jsonArray;
notifyDataSetChanged();
}
此实际代码更新整个列表并删除旧数据。我想要做的是在用户滚动到最后时添加新数据。
希望你能帮助我,谢谢!
【问题讨论】:
标签: android json android-listview