Android - Arraylist大小始终为零

时间:2017-08-14 15:19:34

标签: java android facebook facebook-graph-api

我尝试提出申请。我使用facebook sdk,我可以登录facebook。应用程序正在与用户喜欢的电影。我可以使用图形api执行此操作,我可以将所有电影名称添加到arraylist中。到目前为止一切都还可以。但是当我尝试访问onCreate方法时,arraylist总是为null。当我使用调试时,我可以看到json值。我怎么能解决这个问题。我知道我的英语不好我想解释我的问题。我希望:))

public class list extends AppCompatActivity {

    ArrayList<String> movieList = new ArrayList<String>();

    public void getInfo(){
        GraphRequest request = GraphRequest.newMeRequest(
                AccessToken.getCurrentAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(JSONObject object, GraphResponse response) {
                        JSONObject jsonObject = response.getJSONObject();
                        try {
                            JSONObject movies = jsonObject.getJSONObject("movies");
                            JSONArray data = movies.getJSONArray("data");
                            for (int i = 0; i<data.length();i++){
                                JSONObject objectData = data.getJSONObject(i);
                                String movieName = objectData.getString("name");
                                movieList.add(movieName);
                            }
                        }catch (JSONException e){
                            e.printStackTrace();
                        }

                    }
                });

        Bundle parameters = new Bundle();
        parameters.putString("fields", "movies");
        request.setParameters(parameters);
        request.executeAsync();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        getInfo();

        this.setTitle(movieList.get(0));



    }
}

1 个答案:

答案 0 :(得分:3)

它是空的,因为请求是异步的,当你尝试访问数组时它还没有结束...尝试在onCompleted上访问它