簡體   English   中英

在Android中的String Request Volley中設置類變量的值

[英]Setting value of class variable from String Request Volley in Android

我有一個名為isUserExist的函數。此函數檢查用戶是否存在於具有此電子郵件地址的數據庫中。

在stringrequest中,我將isUserExist變量設置為“ true”。func,func的結尾返回isUserExist。

問題是即使我在字符串request中將其設置為true,它也始終會返回false。在if語句中將其設置為true。

在類的聲明中,它像:

boolean isUserExist;

函數是:

private boolean isUserExist()
{

    StringRequest strReq = new StringRequest(Request.Method.POST,
            AppConfig.URL_USER_EXIST, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {

            try {
                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");
                if (error) {
                    // setting isUserExist = true
                    isUserExist = true;
                    //Log.w("debug1",String.valueOf(isUserExist);) 
                    //returns true;

                } else {

                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {

        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            // Posting params to register url
            Map<String, String> params = new HashMap<String, String>();
            params.put("email", mail);

            return params;
        }

    };
    AppController.getInstance().addToRequestQueue(strReq);
    //Log.w("debug2",String.valueOf(isuserExist));
    //returns false
    return isUserExist;
}

到目前為止,我嘗試了什么:

我搜索並找到了這些想法。 1)將其設為static 2)聲明boolean result[] = new boolean[1]; 並且函數返回結果result [0],我在String Request中確定它為true。 3)將isUserExist聲明為局部變量.boolean isUserExist = false; 在功能的開始。 4)在第一個decleration判斷中,它是: boolean isUserExist = false而不是boolean isUserExist;

但是它們都不起作用。

更好的方法是調試代碼,以檢查您的回調方法是否設置了布爾變量。 設置兩個斷點; 首先在您的外部方法中,其次在您的回調方法中,以查看所有涉及的變量的值。

問題在使用線程.Volley線程在函數返回后將isUserExist設置為true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM