2016-04-10 3 views
1

Ich bin fest, ich versuche, ein Array in Parse zu bekommen. Es gelingt mir, es zu bekommen, aber ich kann es nicht zurückgeben, um es in einer anderen Methode zu verwenden.Parsen Android SDK erhalten ArrayList und geben Sie

Weiß jemand, was soll ich tun?

Abgerufen [ "international", "Unternehmertum"]

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

Was planen Sie mit den Daten? Planen Sie eine Ansicht zu aktualisieren? – Elye

+0

Ich plane, dieses listArray in einer anderen Methode zu verwenden, um zufällig eines der Elemente innerhalb auszuwählen (zum Beispiel 'Unternehmertum'), das wird in einer Ansicht nicht angezeigt –

Antwort

1

Sie können es nicht wieder aus onCreate, nein. Ich würde es nicht einmal in onCreate abrufen, außer Sie können sicher sein, dass es nicht benötigt wird, bis es abgerufen wurde. Ich würde so etwas tun:

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

}); 

} 

Verwenden Sie, welche Schutzebenen angemessen sind.

+0

Danke, wie ich diese Methode nenne? Benenne ich es in onCreate Methode? –

+0

Rufen Sie es von wo immer Sie die Ergebnisse benötigen. – nasch