对不起,我的英语不好,但我有问题,无法弄清楚..
我的片段中有自定义列表视图,用于从JSON数组中获取产品。我在每个listview行中都有3个ImageButtons;
加号按钮( + ),减号按钮( - )和删除按钮( X )..
因此,当我点击每个按钮时,它会调用JSON请求更新产品的件号,从响应中获取新数据并重新填充数组列表。
一切都还可以,但是,当我更快地点击那些按钮时,似乎在多个请求之间有 1秒延迟,即使第一次凌空请求之前已经完成。
这是我在 TableAdapter.java
中的JSON方法public void JSON(final int position, final int process) {
if (inProgress==false) {
dialog = new ProgressDialog(myContext);
dialog.setMessage("Updating.....");
dialog.show();
inProgress = true;
System.out.println("**** Now request is beginning............");
final int rowID = tableModelList.get(position).getID();
final int treeID = tableModelList.get(position).getAna_dal();
final float price = tableModelList.get(position).getBFiyat();
final int quantity = tableModelList.get(position).getAdet();
final int print = tableModelList.get(position).getYazdimi();
final String insertUrl = "http://"+getServer+"/t6mobilservice/order-piece.php";
Map<String, String> parameters = new HashMap<>();
parameters.put("tableID", "" + getTableId);
parameters.put("rowID", "" + rowID);
parameters.put("treeID", ""+treeID);
parameters.put("process",""+process);
parameters.put("quantity",""+quantity);
parameters.put("price",""+price);
parameters.put("print",""+print);
CustomRequest jsObjRequest = new CustomRequest(Request.Method.POST, insertUrl, parameters, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray getOrders = response.getJSONArray("order");
Gson gson = new Gson();
tableModelList.clear();
for (int i = 0; i < getOrders.length(); i++) {
JSONObject order = getOrders.getJSONObject(i);
TableModel tableModel = gson.fromJson(order.toString(), TableModel.class);
tableModelList.add(tableModel);
}
mAdapter.notifyDataSetChanged();
System.out.println("**** onResponse: Request is done............");
System.out.println("**** JSON: "+response.toString());
dialog.cancel();
inProgress = false;
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError response) {
Log.d("Response: ", response.toString());
inProgress = false;
}
});
requestQueue.add(jsObjRequest);
}
}
请求开始时显示对话框,请求完成时取消。但正如我所说,当我点击更快时,即使第一次请求已经完成,多个请求之间也会有延迟。我说 1秒,因为无论我如何快速点击,第二个请求都会在 1秒之后开始。我无法理解......
我测试了快速点击以显示带有随机数字的祝酒词并且它运行正常。但是当我使用JSON方法进行测试时,会有一个奇怪的延迟。
我的片段中有 SwipeRefreshLayout 和 ScrollView 。 我正在使用Volley和单身人士。
编辑1.:这是显示我的问题的a video link ..
编辑2.:每次点击都会a LogCat output video
每次快速点击都会返回成功的json输出,但没有立即改变..
感谢您的帮助。