Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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 如何将变量值从内部类(Response.Listener)持久化到外部?_Java_Android_Android Volley_Inner Classes_Gson - Fatal编程技术网

Java 如何将变量值从内部类(Response.Listener)持久化到外部?

Java 如何将变量值从内部类(Response.Listener)持久化到外部?,java,android,android-volley,inner-classes,gson,Java,Android,Android Volley,Inner Classes,Gson,我在容器类中有一个名为facebookCheckEmail()(以下)的函数,我想在facebookCheckEmail()的public void onResponse(FbCheckObject FbCheckObject){}中更改容器类的变量值(fbresponse),我该怎么做 private void facebookCheckEmail( String email ) { fbCheckEmail_params = new HashMap<String, Str

我在容器类中有一个名为
facebookCheckEmail()
(以下)的函数,我想在
facebookCheckEmail()
public void onResponse(FbCheckObject FbCheckObject){}
中更改容器类的变量值(
fbresponse
),我该怎么做

private void facebookCheckEmail( String email ) {



    fbCheckEmail_params = new HashMap<String, String>();
    fbCheckEmail_params.put("Email", email);

    final GsonRequest<FbCheckObject> gsonRequest = ApiRequest.gsonFacebookCheckEmailRequest
            (
                    new Response.Listener<FbCheckObject>() {
                        @Override
                        public void onResponse(FbCheckObject fbCheckObject) {


                            try {

                                System.out.println("Status = " + fbCheckObject.getStatus());

                                if (new String(fbCheckObject.getStatus()).equals("ok") == true) {

                                    fbresponse = "ok";

                                } else if(new String(fbCheckObject.getStatus()).equals("no") == true){

                                    fbresponse = "no";

                                }

                            } catch (Exception e) {

                                Log.d("Web Service Error", e.getMessage());
                                e.printStackTrace();
                            }
                        }
                    }
                    ,
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            // Deal with the error here

                        }
                    },
                    fbCheckEmail_params
            );

    AppController.getInstance().addToRequestQueue(gsonRequest, TAG);

}

注意:在“
@Override public void onResponse(FbCheckObject FbCheckObject){}
”内,
fbresponse
值成功分配给“
ok
”或“
no
”如果不成功,但如果I
System.out.printIn
fbresponse
,我将获得“
null
”值做你想做的不是一个好的设计。您应该更改方法,使其返回以下状态:

private String facebookCheckEmail( String email ) {
...
}
并将返回值设置为响应:

fbresponse = facebookCheckEmail(email);

就我所知,你确实改变了变量。还是不是编译?当I System.out.println()fbresponse在new Response.Listener()作用域之外时,它返回“null”,代码示例中缺少一些内容。为变量指定一个空格,然后将其更改为“确定”或“否”。我看不出应该在何处为变量指定NULL。在我将其从fbresponse“”更改后,它为NULL;作出反应;你能给我看一个上面代码的例子吗?
fbresponse = facebookCheckEmail(email);