ResponseListener没有更新我的类变量

时间:2017-10-21 13:03:18

标签: java android response

我有一个ResponseListener,可以从网上获取一些用户数据。我将监听器放在一个名为getUserDataFromWeb() ..

的单独函数中

我想要测试目的来干杯一些响应值..在这个例子中是一个邮政编码。当我想要对邮政编码进行干杯时,它只能在responseListener中运行,但在onCreate()方法之后,它应该实际更新了我的逻辑中的类变量"postcode" ..

我试图在onStart()方法中干预邮政编码,但它仍为空

我的onCreate()方法如下所示:

    username = getIntent().getStringExtra(Constants.KEY_USERNAME);
    getUserDataFromWeb(username);
    Toast.makeText(this, postcode, Toast.LENGTH_SHORT).show();
    // when i toast at this point, the postcode is null...

该功能如下所示:

public void getUserDataFromWeb(String username){

        Response.Listener<String> listener = new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                try {
                    JSONObject JSONResponse = new JSONObject(response);
                    boolean success = JSONResponse.getBoolean("success");

                        if (success){

                            postcode = JSONResponse.getString(Constants.KEY_POSTCODE);
                             // When i toast the postcode at this place it works

                        }else{
                            Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show();
                        }

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

            }
        };

        UserDataRequest userDataRequest = new UserDataRequest(username,listener);
        RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
        queue.add(userDataRequest);

    }

你能帮我解释为什么在getUserdataFromWeb()之后没有设置邮政编码类变量吗?

0 个答案:

没有答案