java - 如何正确设置匿名类中的字段并在主类中使用它们?

标签 java android-studio android-volley field anonymous-class

我正在Android Studio中制作应用程序,并且无法设置匿名类中字段的值。

我知道“ receivedNumber”始终与“ -1”不同,并且值“ isExist”必须为“ true”,但在日志中为“ false”。
int字段也会发生同样的事情-始终返回0。
我应该怎么做才能在匿名类中正确设置字段并在我的主类中使用它们。

private void isNumberExist()
{
        String URL = "some url...";
        final boolean[] isExist = new boolean[1];
        objectRequest = new JsonObjectRequest(
                Request.Method.GET,
                URL,
                null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            int receivedNumber = response.getInt("id");
                            if (receivedNumber == -1) {                           
                                isExist[0] = false;                          
                            } else {     
                                isExist[0] = true;              
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                       //error
                    }
                }
        );
        Log.e("isExist","value"+ isExist[0]);
        requestQueue.add(objectRequest);
        requestQueue.cancelAll(this);
}

最佳答案

它将始终为false,因为您在执行http(s)请求之前登录了isExist[0]

请尝试这个

private void isNumberExist()
{
    String URL = "some url...";
    final boolean[] isExist = new boolean[1];
    objectRequest = new JsonObjectRequest(
            Request.Method.GET,
            URL,
            null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        int receivedNumber = response.getInt("id");
                        if (receivedNumber == -1) {                           
                            isExist[0] = false;                          
                        } else {     
                            isExist[0] = true;              
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    // New log location
                    Log.e("isExist","value"+ isExist[0]);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    //error
                }
            }
            );
    requestQueue.add(objectRequest);
    requestQueue.cancelAll(this);
}

关于java - 如何正确设置匿名类中的字段并在主类中使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54031626/

相关文章:

android - java.lang.NoClassDefFoundError : com. acme.R$layout 引用 android 库

android - 实现 SeekArc 时构建同步失败

android - 在android studio中,如何在一个窗口中打开多个项目?

android Volley 库 "Error:(9, 0) Gradle DSL method not found: '编译()'"

java - 使用 Volley 和 Gson : Parse item and items list

java - ColModel jqgrid 不同标签名称

java - 寻找斐波那契数的黄金比例

java - 在一个方法中返回多个整数

java - 是否可以使用JAVA从文本文件读取文件结构并跟踪父节点和子节点?

json - 如何在 Kotlin 的 Volley 请求中在 Url 中添加正文?