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
”如果不成功,但如果ISystem.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);