Android actionbar活动中未更新成员变量

Android actionbar活动中未更新成员变量,android,android-activity,scope,Android,Android Activity,Scope,我的两个全局成员变量不知何故没有获得我在oncreate()方法中分配给它们的数据,下面是我的代码。在okhttp的response()方法中,log.d打印正确的大小,但在该大小之外,它打印0。请参阅下面的代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_im

我的两个全局成员变量不知何故没有获得我在oncreate()方法中分配给它们的数据,下面是我的代码。在okhttp的response()方法中,log.d打印正确的大小,但在该大小之外,它打印0。请参阅下面的代码

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_image_grid);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }


   // for (int start = 0; start < 20; start++) {


        if (isNetworkAvailable()) {

            //using okHttp library to connect to imagesUrl and retrieve JSON Data
            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url(getImagePage(start)).
                            build();

            Call call = client.newCall(request);

            //runs the below code asynchronously
            call.enqueue(new Callback() {
                @Override
                public void onFailure(Request request, IOException e) {
                    Log.v(TAG, "error from request");

                }

                @Override
                public void onResponse(Response response) throws IOException {

                    try {
                        String jsonData = response.body().string();
                        //Log.v(TAG, jsonData);

                        if (!response.isSuccessful()) {
                            alertUserAboutError();
                        } else {

                            mSmalImagesUrls = getCurrentDetails(jsonData);
                            mBigImagesUrls.add(mSmalImagesUrls);
                            Log.d(TAG, mBigImagesUrls.size() + " big size");
                            Log.d(TAG, mSmalImagesUrls.size() + " small size");

                        }
                    } catch (IOException | JSONException e) {
                        Log.e(TAG, "Exception caught :", e);
                    }
                }
            });
        } else {
            Toast.makeText(this, "Network is unavailable", Toast.LENGTH_LONG).show();
        }
    //}

    Log.d(TAG, mBigImagesUrls.size() + " big size");
    Log.d(TAG, mSmalImagesUrls.size() + " small size");

}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u image\u grid);
如果(savedInstanceState==null){
getSupportFragmentManager().beginTransaction()
.add(R.id.container,新的占位符片段())
.commit();
}
//对于(int start=0;start<20;start++){
if(isNetworkAvailable()){
//使用okHttp库连接到imagesUrl并检索JSON数据
OkHttpClient=新的OkHttpClient();
Request Request=newrequest.Builder()
.url(getImagePage(开始))。
build();
Call Call=client.newCall(请求);
//异步运行下面的代码
call.enqueue(新回调(){
@凌驾
公共void onFailure(请求,IOE异常){
Log.v(标签“请求错误”);
}
@凌驾
public void onResponse(Response-Response)引发IOException{
试一试{
String jsonData=response.body().String();
//Log.v(标签,jsonData);
如果(!response.issusccessful()){
alertUserAboutError();
}否则{
MSAlimageSurls=getCurrentDetails(jsonData);
mBigImagesUrls.add(mSmalImagesUrls);
Log.d(标记,mBigImagesUrls.size()+“大尺寸”);
Log.d(标记,mSmalImagesUrls.size()+“小尺寸”);
}
}捕获(IOException | JSONException e){
Log.e(标记“异常捕获:”,e);
}
}
});
}否则{
Toast.makeText(此“网络不可用”,Toast.LENGTH_LONG.show();
}
//}
Log.d(标记,mBigImagesUrls.size()+“大尺寸”);
Log.d(标记,mSmalImagesUrls.size()+“小尺寸”);
}

最后3个Log.d语句打印0。我不知道为什么。请让我知道我错过了什么。谢谢

您知道您正在启动一个异步请求,对吗?这意味着最后两个
Log.d
行不会立即具有“updated”值,您必须等待未知的时间,直到调用回调,然后在
onResponse
方法中更新全局变量。谢谢,这意味着lotMember变量不是全局变量。