如何解决因未完成的Volley post方法而导致的错误?

时间:2015-09-29 11:45:16

标签: android json android-volley

我的主要活动课程是

public class MainActivity extends Activity {


private ProgressDialog pDialog;
private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);





    RequestQueue queue = Volley.newRequestQueue(this);
    String url="http://onam.leah.in/android_login_api/register_json.php";

    JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST,url,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    System.out.println(response);
                    hideDialog();
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    hideDialog();
                }
            }) {
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("user","swaroop");

            return params;
        };
    };
    queue.add(jsObjRequest);
}
private void showDialog() {
    if (!pDialog.isShowing())
        pDialog.show();
}

private void hideDialog() {
    if (pDialog.isShowing())
        pDialog.dismiss();
}
}

我尝试将详细信息发送到网址:http://onam.leah.in/android_login_api/register_json.php,null

我的日志猫位于

之下
  

处理:harico.jsonexam2,PID:21185       java.lang.NullPointerException:尝试在空对象引用上调用虚方法'boolean android.app.ProgressDialog.isShowing()'               at harico.jsonexam2.MainActivity.hideDialog(MainActivity.java:75)               at harico.jsonexam2.MainActivity.access $ 000(MainActivity.java:29)               at harico.jsonexam2.MainActivity $ 2.onErrorResponse(MainActivity.java:57)               at com.android.volley.Request.deliverError(Request.java:598)               在com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run(ExecutorDelivery.java:101)               在android.os.Handler.handleCallback(Handler.java:739)               在android.os.Handler.dispatchMessage(Handler.java:95)               在android.os.Looper.loop(Looper.java:135)               在android.app.ActivityThread.main(ActivityThread.java:5312)               at java.lang.reflect.Method.invoke(Native Method)               在java.lang.reflect.Method.invoke(Method.java:372)               在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:901)               在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)

3 个答案:

答案 0 :(得分:0)

你确定这是正确的网址吗?

url="http://onam.leah.in/android_login_api/register_json.php,null";

最后一部分看起来不正确

答案 1 :(得分:0)

pDialog为空。为ProgressDialog创建实例。

ProgressDialog pDialog = new ProgressDialog(MainActivity.this);

答案 2 :(得分:0)

Handler handler = new Handler(); // create instance in onCreate()

...

在回调响应中使用它

handler.post(new Runnable() {
           void run() {
               hideDialog();
           }
});