2016-11-17 4 views
1

Ich möchte wissen, wie Daten über Absicht im Realm übergeben werden. in this example er verwendet alertDialog, aber wenn wir neue Aktivität starten möchten, wie dann diese Daten in der neuen Aktivität zu laden?Wie Daten über Intent im Realm übergeben werden

+2

Dieser Abschnitt in der Dokumentation kann hilfreich sein: https://realm.io/docs/java/latest/#intents –

+0

@AmitKhatkar das Beispiel, das Sie verlinkt ist eine Grausamkeit, habe ich das hier umgeschrieben: https: // github. com/Zhuinden/realm-book-example – EpicPandaForce

Antwort

0

Sie sollten den Primärschlüssel des Objekts durch das Bündel senden und das Objekt in der neuen Aktivität erneut anfordern.

Intent intent = new Intent(this /*activity*/, OtherActivity.class); 
intent.putExtra("personId", person.getId()); 
startActivity(intent); 

Und

public class OtherActivity extends AppCompatActivity { 
    Realm realm; 
    Person person; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     realm = Realm.getDefaultInstance(); 
     person = realm.where(Person.class) 
         .equalTo(PersonFields.ID, getIntent().getLongExtra("personId")) 
         .findFirst(); 
     //... 
    } 

    @Override 
    public void onDestroy() { 
     if(realm != null) { 
      realm.close(); 
     } 
     super.onDestroy(); 
    } 
} 

Sie können so mehr über grundlegende FAQ Fragen lesen entweder in the official documentation, oder in meinem Medium article series.

+1

Sehr nette Antwort))) Realm in Aktivität setzen und Absicht zur Aktivität senden)) Dies ist das Non-Standard-Denken, das ich je gesehen habe :-) – Alexander

+0

Du solltest definitiv keine Aktivität verwenden dafür - IntentService oder Service ist in Ordnung, aber Aktivität soll mit UI verwendet werden –

+0

@AlexShutov huh? – EpicPandaForce

Verwandte Themen