Vorbei ArrayList<CustomObject> Zwischen Aktivitäten
habe ich umgesetzt, ein Parcelable-Klasse:
public class Evento implements Parcelable {
private int;
private String ;
private String imagen;
//more atts
//Constructors, setters and getters
public Evento(Parcel in) {
this.id = in.readInt();
this.titulo = in.readString();
this.imagen=in.readString();
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(titulo);
dest.writeString(imagen);
}
public static final Parcelable.Creator<Evento> CREATOR = new Parcelable.Creator<Evento>() {
@Override
public Evento createFromParcel(Parcel in) {
return new Evento(in);
}
@Override
public Evento[] newArray(int size) {
return new Evento[size];
}
};
In meiner Tätigkeit versuche ich, um eine arrayList an eine andere activitie:
I ' me overwriten onItemClick und ich bin die Weitergabe der Daten dieser Art und Weise:
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
//create new activitie
ArrayList<Eventos> eventos = new ArrayList<Eventos>();
Intent intent = new Intent(QueActivity.this, ProductosCategorias.class);
//Create information
Bundle informacion= new Bundle();
informacion.putParcelableArrayList("eventos", eventos);
intent.putExtras(informacion);
und empfangen es in der anderen Tätigkeit:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_productos_categorias);
lv = (ListView) findViewById(R.id.listaCategoriaElegida);
Bundle informacionRecibida = getIntent().getExtras();
ArrayList<Evento> eventos =new ArrayList<Evento>();
eventos= informacionRecibida.getParcelableArrayList("eventos");
Ich bin immer ein null-Zeiger-Ausnahme. Ich habe debbuged es und ich bin immer NULL, wenn ich ausführen, die getParcelableArrayList("eventos"), ich meine, meine arraylist eventos ist null, also, ich erhalte keine Informationen.
Jede Hilfe wird groß sein
- Sie haben, um das Bündel in der Absicht.
- auch dieser code
informacion.putParcelableArrayList("eventos", ArrayList<Eventos> eventos);
gar nicht kompilieren, so dass ich nicht davon ausgehen, dies ist der eigentliche code, den Sie verwenden. - möglich, Duplikat der Wie übergeben Objekt von einer Aktivität zur anderen in Android
- Es ist nicht der eigentliche code, den ich verwende. Ich habe bereits das bundle in der Absicht. @Sameer Beitrag ist nicht doppelt
- stackoverflow.com/a/7400675/726863
- Ok, dann siehe Antwort @n4h1n
- siehe dieses tutorial xtreamcoder.com/pass-custom-arraylist
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser code
Sollte
und Stellen Sie sicher, dass Ihre Eventos Struktur wie ein serialisiertes Objekt
Lesen Werte
Parcelable ist viel besser als die Serialisierung in ein performance-wise und andere Funktionen.
siehe diesen link:
http://www.3pillarglobal.com/insights/parcelable-vs-java-serialization-in-android-app-development