我在一个Android应用程序上工作,我对使用volley库执行网络http调用非常感兴趣。

但是我的问题是,我发现该库在不同的后台线程中执行操作,然后如何在http请求开始执行时显示ProgressDialog,然后在执行后将其关闭。

RequestQueue rq = Volley.newRequestQueue(this);
StringRequest postReq = new StringRequest(Request.Method.POST, "http://httpbin.org/post", new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        tv.setText(response); // We set the response data in the TextView
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        System.out.println("Error ["+error+"]");

    }
});

提前致谢。

最佳答案

非常简单。将请求对象添加到队列后,启动进度对话框。

//add the request to the queue
rq.add(request);

//initialize the progress dialog and show it
progressDialog = new ProgressDialog(getActivity());
progressDialog.setMessage("Fetching The File....");
progressDialog.show();

从服务器收到响应后,请关闭该对话框。
StringRequest postReq = new StringRequest(Request.Method.POST, "http://httpbin.org/post", new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        tv.setText(response); // We set the response data in the TextView
        progressDialog.dismiss();
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.e(“Volly Error”,”Error: ”+error.getLocalizedMessage());
        progressDialog.dismiss();
    }
});

关于java - 使用 Volley 进行网络操作时如何显示ProgressDialog,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23962339/

10-09 02:54