2016-04-10 13 views
1

私は立ち往生していますが、ParseでArrayを取得しようとしています。私はそれを得ることに成功しますが、別の方法でそれを使用するために返すことはできません。Android SDKを解析してArrayListを取得して返します

私は何をすべきか知っていますか?取り出さ

[ "国際"、 "起業家精神"]

public class CardsActivity extends AppCompatActivity { 
ParseUser currentUser = ParseUser.getCurrentUser(); 
String test = currentUser.getObjectId(); 


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

    // Specify which class to query 
    ParseQuery<ParseObject> query = ParseQuery.getQuery("_User"); 
    query.selectKeys(Arrays.asList("tastes")); 
    // Specify the object id 

    query.getInBackground(test, new GetCallback<ParseObject>() { 
     public void done(ParseObject object, ParseException e) { 

       if (e == null) { 

        ArrayList<String> userTastesGot = (ArrayList<String>) object.get("tastes"); 

        Log.d("User", "Retrieved " + userTastesGot); 

       } else { 
        Toast.makeText(CardsActivity.this, "Nous n'avons pas trouvés vos goûts", Toast.LENGTH_SHORT).show(); 
       } 
      } 

    }); 
+0

データをどうすればよいですか?ビューを更新する予定ですか? – Elye

+0

私はこのリスト配列を別のメソッドでランダムに選択することを計画しています(例えば '起業家精神'のような)これはビューに表示されません –

答えて

1

あなたがいない、onCreateからそれを返すことはできません。私はonCreateでそれを取り出すことさえしません。あなたがそれが検索されるまで必要でないことが確実でない限り。私は次のようなことをします:

interface Callback<T> { 

    void success(T result); 
    void failure(Exception error); 
} 

void getUserTastes(Callback<ArrayList<String>> callback){ 

// Note the special way to get a query for the user table 
ParseQuery<ParseUser> query = ParseUser.getQuery(); 
query.selectKeys(Arrays.asList("tastes")); 
// TODO: Specify the object id 

query.getInBackground(test, new GetCallback<ParseUser>() { 
    public void done(ParseUser object, ParseException e) { 

      if (e == null) { 

       ArrayList<String> userTastesGot = (ArrayList<String>) object.get("tastes"); 

       Log.d("User", "Retrieved " + userTastesGot); 

       callback.success(userTastesGot); 

      } else { 
       callback.failure(e); 
      } 
     } 

}); 

} 

適切な保護レベルを使用してください。

+0

ありがとう、しかし、私はこのメソッドをどう呼びますか? onCreateメソッドで呼びますか? –

+0

結果が必要な場所から呼び出します。 – nasch

関連する問題