我是android studio的新手,可能是一个简单的错误。 我想在一个截击请求后设置一个颜色,但我的颜色变量为空。 我确定齐射正在恢复颜色。 我的截击请求后为什么我的颜色为空?
我有这段代码:
public class MyClass extends AppCompatActivity {
private static Context context;
public static String color;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.context = getApplicationContext();
getColor();
...
}
public void getColor() {
<--volley Queue-->
StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
color = response; // ??????????????????????????
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//Log.d("Error.Response", response);
}
}
);
mRequestQueue.add(strReq);
Log.w("erro: ", color); // color here is null?????????????? why??
}//getcolor()
}class
我应该使用get / set吗?有人能举个例子吗?
答案 0 :(得分:3)
这是一个异步调用。在将结果传递给侦听器之前,将执行log语句。因此,如果您在通话后立即检查变量,它很可能仍然是null
。