2017-12-31 124 views
2

So habe ich eine ListView von Übungen, wenn ich auf ein Element klicken ich gehe zu Detail.java Aktivität und ich zeige die Informationen der Übung, aber ich habe eine Schaltfläche als nächstes in der unteren Gehe zur nächsten Übung. Ich habe keine Idee, dies zu tun, ohne viele Detailaktivitäten zu erstellen.starten Aktivität von ListView und dann nächste Aktivität

+0

Wat über Fragmente statt Aktivität zu verwenden Fragmente, um Inhalt zu ersetzen. –

Antwort

0

soweit ich von der Info verstehen u gab: Sie Objekt zwischen Aktivitäten passieren kann Serializable und Parcel Schnittstelle verwenden, die Ihr Objekt

Using Serializable and Parcelable instructions

implementieren solltenDer nächste Schritt Daten aus Ihrer Haupttätigkeit auf die detaillierte Aktivität

Mit serializable

ArrayList<ModelClass> yourModelList= new ArrayList<Model>(); 
intent.putExtra("modelList", yourModelList); 

Daten abrufen

ArrayList<ModelClass> modelList= (ArrayList<ModelClass>).getIntent().getSerializableExtra("modelList"); 

Mit Parcelvorbei

Intent intent = new Intent(this,Detail.class); 
intent.putParcelableArrayListExtra("modelList", modelList); 
startActivity(intent); 

Abrufen von Daten in Ihrem Detail.java Aktivität

ArrayList<ModelClass> modelList= getIntent().getParcelableArrayList("modelList"); 

Neben ich sehr empfehlen Sie Fragment verwenden, Coz es chaotisch wird, wenn Sie durch Ihre Arraylist von einer Tätigkeit beginnen Iterieren zu eine andere Speichern IDs und andere Sachen Hope dies hilft;)

+0

danke, es funktioniert, aber getParcelableExtra ("modelList") funktioniert nicht ich verwendet getStringArrayListExtra .. –

+0

Ich habe meine Antwort versucht mit .putParcelableArrayListExtra und GetParcelableArrayListExtra bearbeitet – Aliy

0

Sie können die Detailaktivität mit einem Bündel mit den gewünschten Parametern starten, in diesem Beispiel die ID der nächsten Übung.

Intent mIntent = new Intent(this, Detail.class); 
Bundle mBundle = new Bundle(); 
mBundle.putInt("id", theIdOfNextExercise); 
mIntent.putExtras(mBundle); 
startActivity(mIntent); 

Dann werden in der Aktivität gestartet Details, können Sie die Parameter über lesen:

int exerciseId = getIntent().getExtras().getInt("id", 0); 

Und dann zeigen die auf diese Übung in Ihrem Detail Aktivität im Zusammenhang Detail. Ich habe den Standardwert als 0 festgelegt, wenn also ÜbungId> 0 ist, muss die ID der Übung angezeigt werden.

Bündel haben Methoden "get" und "put" für alle primitiven Typen, Serialisables und Parcelables. Die Verwendung einer Ganzzahl mit putInt/getInt ist nur ein Beispiel.

0

Sie Bündel können Sie die ID Ihres Trainings speichern und als es auf die Aktivität fangen Sie genannt ... Ich schlage vor, Sie Fragment zu verwenden, ist es schwieriger, aber es ist klügste und benutzerfreundlicher

Verwandte Themen