Java Android-Arraylist大小始终为零
我试着申请。我使用facebook sdk,我可以使用facebook登录。应用程序正在获取用户喜欢的电影。我可以用GraphAPI实现这一点,我可以将所有电影的名称添加到arraylist中。到目前为止一切都还好。但当我尝试在onCreate方法中访问时,arraylist总是为null。当我使用debug时,我可以看到json值。我怎样才能解决这个问题。我知道我的英语不好,我正在努力解释我的问题。我希望:)Java Android-Arraylist大小始终为零,java,android,facebook,facebook-graph-api,Java,Android,Facebook,Facebook Graph Api,我试着申请。我使用facebook sdk,我可以使用facebook登录。应用程序正在获取用户喜欢的电影。我可以用GraphAPI实现这一点,我可以将所有电影的名称添加到arraylist中。到目前为止一切都还好。但当我尝试在onCreate方法中访问时,arraylist总是为null。当我使用debug时,我可以看到json值。我怎样才能解决这个问题。我知道我的英语不好,我正在努力解释我的问题。我希望:) 公共类列表扩展了AppCompatActivity{ ArrayList movie
公共类列表扩展了AppCompatActivity{
ArrayList movieList=新的ArrayList();
public void getInfo(){
GraphRequest请求=GraphRequest.newmereRequest(
AccessToken.getCurrentAccessToken(),
新建GraphRequest.GraphJSONObjectCallback(){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
JSONObject JSONObject=response.getJSONObject();
试一试{
JSONObject movies=JSONObject.getJSONObject(“电影”);
JSONArray data=movies.getJSONArray(“数据”);
例如(int i=0;i它是空的,因为请求是异步的,当您尝试访问数组时它还没有结束…尝试在onCompleted时访问它。它是空的,因为请求是异步的,当您尝试访问数组时它还没有结束…尝试在onCompleted时访问它。executeAsync()
被调用,我假定this.setTitle()
在异步请求完成之前运行……当调用executeAsync()
时,我假定this.setTitle()
在异步请求完成之前运行…0只是一个示例。如果我想用arraylist填充listView,我能做什么?我想我必须在完成后再次填充。正确吗?是的,在完成后再填充…我写了0,我的意思是空0只是一个示例。如果我想用arraylist填充listView,我能做什么?我想我必须这样做完成后再次填充。正确吗?是的,完成后再填充…这是我的错,我写了0,我的意思是空的
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));
}
}