Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用截击进行网络操作时如何显示ProgressDialog_Java_Android_Android Volley - Fatal编程技术网

Java 使用截击进行网络操作时如何显示ProgressDialog

Java 使用截击进行网络操作时如何显示ProgressDialog,java,android,android-volley,Java,Android,Android Volley,我正在开发一个android应用程序,我对使用volley库执行网络http调用非常感兴趣 但我的问题是,我发现这个库在不同的后台线程中进行操作,然后我如何在http请求开始执行时显示ProgressDialog,然后在执行后将其关闭 RequestQueue rq = Volley.newRequestQueue(this); StringRequest postReq = new StringRequest(Request.Method.POST, "http://httpbin.org/p

我正在开发一个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+"]");

    }
});
RequestQueue rq=Volley.newRequestQueue(this);
StringRequest postReq=新的StringRequest(Request.Method.POST)http://httpbin.org/post,新的响应。侦听器(){
@凌驾
公共void onResponse(字符串响应){
tv.setText(response);//我们在TextView中设置响应数据
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
System.out.println(“错误[“+错误+”]);
}
});

提前谢谢。

这很简单。在队列中添加请求对象后,启动进度对话框

//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();
    }
});
StringRequest postReq=新的StringRequest(Request.Method.POST)http://httpbin.org/post,新的响应。侦听器(){
@凌驾
公共void onResponse(字符串响应){
tv.setText(response);//我们在TextView中设置响应数据
progressDialog.disclose();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.e(“Volly Error”,“Error:+Error.getLocalizedMessage());
progressDialog.disclose();
}
});

您可以根据请求显示一个,然后在onResponse或onErrorResponse中取消它。@greenapps您能给我举个例子吗?有什么问题吗?只需在发布代码之前创建一个ProgressDialog。或者在您将postReq放入队列的那一刻。让他看看。或者是否存在onStart事件?如果在方向更改期间重新创建活动而不使用清单中的configChanges,我们如何处理进度对话框?此答案不是一个完整的解决方案。如果你改变方向怎么办?如果按取消进度-网络操作从何处取消?这是一个非常老的问题,与此问题和解决方案有些无关。如果您不小心处理,方向更改可能会导致任何活动/视图出现问题。有关更多信息,请参见此处:。您也可以在SO中查看有关此问题的讨论。一个例子是: