【发布时间】:2021-07-18 05:51:25
【问题描述】:
我有一个壁纸应用程序,我从 api 获取图像数据,问题是我从 api 获取所有图像,这就是为什么加载需要太多,所以我想添加分页以获得更好的优化,但事情是我不想要使用 mysql 因为我有很多图像。没有mysql如何添加分页?
json [ { "url": "http://.com/Wallpapers/Animals/790669.jpg", “时间”:“2021-04-21 08:41:17” }, { "url": "http://.com/Wallpapers/Animals/790810.jpg", “时间”:“2021-04-21 08:41:17” } ]
我的代码
private void getData() {
RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, dataurl+name, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray array = response.getJSONArray("files");
for (int i = 0; i < array.length(); i++) {
JSONObject imgObject = array.getJSONObject(i);
WPList imgList = new WPList();
imgList.setURL(imgObject.getString("url").toString());
imgList.setDate(imgObject.getString("time").toString());
anlist.add(imgList);
}
} catch (JSONException e) {
e.printStackTrace();
}
recyclerView.setLayoutManager(new GridLayoutManager(MainActivity2.this, 3));
recyclerView.setHasFixedSize(true);
adapter = new WallpaperAdapter(MainActivity2.this, anlist);
progressBar.setVisibility(View.GONE);
recyclerView.setAdapter(adapter);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity2.this, "No Available Image Found", Toast.LENGTH_SHORT).show();
Log.d("tag", "onErrorResponse: " + error.getMessage());
}
});
// Add JsonObjectRequest to the RequestQueue
jsonObjectRequest.setShouldCache(false);
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 2,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.getCache().clear();
queue.add(jsonObjectRequest);
}
【问题讨论】:
-
什么时候请求图片?在
onBindViewHolder的 Adapter 中? -
@anatoli 是 onBindViewHolder。
标签: java android json android-studio pagination