6 Stimmen

Android, Wie kann ich eine ArrayList<myObject> in ein Intent einfügen?

Ich habe zwei Aktivitäten, in der ersten instanziieren ich eine ArrayList von Object myObject. In der zweiten Aktivität muss ich diese ArrayList abrufen. Ich weiß nicht, wie man das mit einer Absicht tun?

(Objekt ist eine Klasse, die ich erstellt habe)

Vielen Dank im Voraus.

6voto

getekha Punkte 2415

Wenn Sie Ihre Object-Klasse implementieren lassen Paketschein können Sie Ihre Array-Liste in das Paket packen, das Sie mit der Absicht senden

siehe dieser Link für ein Beispiel

1voto

Mark Fisher Punkte 9558

Normalerweise verwenden Sie Bundle Objekte, um Informationen zwischen Activities weiterzugeben, aber diese erlauben nur Objekte einfachen Typs. Um komplexere Objekttypen weiterzugeben, müssen Sie in der Regel einen statischen Kontext konstruieren und Ihre Werte in diesem Kontext festlegen, der dann der zweiten Aktivität zur Verfügung steht. Das fühlt sich schmutzig an, aber in meinen Anwendungen habe ich das jetzt überwunden.

1voto

ccheneson Punkte 48032

Deine Klasse myObject wird umsetzen müssen Paketfähig . Dann können Sie putParcelableArrayListExtra von Ihrer Absicht, sie an die nächste Aktivität weiterzugeben, und rufen Sie die Liste mit getParcelableArrayListExtra

0voto

Rasel Punkte 5052

Ich habe das so verwendet.

setzen:

intent.putExtra("data", new DataWrapper(selectedTasks));
startActivity(intent);

bekommen:

DataWrapper dw = (DataWrapper) getIntent().getSerializableExtra("data");
ArrayList<SelectedTask> taskList = dw.getList();

Arraylist-Objekt sollte serialisierbar sein

public class SelectedTask implements Serializable{

}

public class DataWrapper implements Serializable{
    private ArrayList<SelectedTask> slist;

       public DataWrapper(ArrayList<SelectedTask> data) {
          this.slist = data;
       }

       public ArrayList<SelectedTask> getList() {
          return this.slist;
       }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X