2017-08-14 8 views
0

私はアプリケーションを作成しようとします。私はfacebook sdkを使用し、facebookでログインすることができます。アプリはユーザーの好きな映画を取得しています。私はグラフapiでこれを行うことができ、私はarraylistに映画のすべての名前を追加することができます。今はすべてがOKです。しかし、私がonCreateメソッドでアクセスしようとすると、arraylistは常にnullになります。私はデバッグを使用しているときに私はjsonの値を見ることができます。どのように私はこれを解決することができます。私は自分の英語をよく知っていません私は私の問題を説明しようとしています。私は願っています可能性:)Android - Arraylistサイズは常にゼロ

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)); 



    } 
} 
+0

でそれにアクセスしてみてください)'です私は 'this.setTitle()'が非同期リクエストが終了する前に実行されると仮定しています... –

答えて

3

を、リクエストが非同期である空の原因だとあなたは配列にアクセスしようとすると、それが終了していません... `executeAsync(としてonCompleted

+0

0は単なる例です。私はarraylistとlistViewを記入したい場合。私に何ができる ?私はもう一度記入しなければならないと思う。それが正しいか ? –

+0

はいいいえonCompleted ...それは私の悪い私は0を書いた、私は空を意味 – nKalai

関連する問題