Warum Bündel hat getParcelableArrayList
, getParcelable
Methoden; aber Intent
hat nur putParcelableArrayListExtra
Methode? Kann ich nur object<T>
, nicht ArrayList
eines Elements übertragen? Was ist dann getParcelable
für?Android: Wie Parcelable-Objekt an Absicht übergeben und GetParcelable-Methode des Bündels verwenden?
Q
Android: Wie Parcelable-Objekt an Absicht übergeben und GetParcelable-Methode des Bündels verwenden?
36
A
Antwort
108
Absicht bietet mehrere Überlastung putExtra() Methoden.
Angenommen, Sie haben eine Klasse Foo Parcel, richtig implementiert es in einer Aktivität in Intent zu setzen:
Intent intent = new Intent(getBaseContext(), NextActivity.class);
Foo foo = new Foo();
intent.putExtra("foo ", foo);
startActivity(intent);
es in einer anderen Aktivität von Absicht zu erhalten:
Foo foo = getIntent().getExtras().getParcelable("foo");
Hoffnung, das hilft.
2
Parcelable p[] =getIntent().getParcelableArrayExtra("parcel");
1
Zuerst erstellen Parcel mit Given Technique dann
public static CreditCardDetail newInstance(CreditCardItemBO creditCardItem) {
CreditCardDetail fragment = new CreditCardDetail();
Bundle args = new Bundle();
args.putParcelable(CREDIT_KEY,creditCardItem);
fragment.setArguments(args);
return fragment;
}
Und wie
if(getArguments() != null)
{
creditCardItem = getArguments().getParcelable(CREDIT_KEY);
}
bekommen, wo
public static final String CREDIT_KEY = "creditKey";
0
Es ist wichtig, sich daran zu erinnern, dass Ihre m Modelle müssen die Parcelable Schnittstelle und die statische Methode implementieren. Dieser Fall ist für die Listen
private static final String MODEL_LIST = "MODEL_LIST";
public MainFragment() {}
public static MainFragment newInstance(ArrayList<YourModel>
models) {
MainFragment fragment = new MainFragment();
Bundle args = new Bundle();
args.putParcelableArrayList(MODEL_LIST,models);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
ArrayList<YourModel> models = getArguments().getParcelableArrayList(MODEL_LIST);
}
}
Verwandte Themen
- 1. Übergabe eines Bündels an startActivity()?
- 2. Verwenden Absicht, um mehrere Videodateien in Android
- 3. Absicht: Android
- 4. Absicht des Spring-Formularbefehls
- 5. Verwenden des Befehlszeilenarguments zum Übergeben von Dateien an ein Programm
- 6. Android: Wie die Daten an Unteraktivitäten übergeben?
- 7. Android Download Absicht
- 8. Android - ‚Anwendung installieren‘ Absicht
- 9. Android: validieren Sie die Identität des Absenders Absicht
- 10. Android Kamera Absicht
- 11. Wie listet Schlüsselwertpaare eines Bündels auf
- 12. So senden Sie ein SearchView-Objekt innerhalb des Bündels an Fragment von Aktivität
- 13. Android entsperren Bildschirm Absicht?
- 14. Wie ein Bitmap an, wenn ACTION_SEND Absicht lanciert
- 15. Informationen von Marker erhalten und es in einer Absicht verwenden
- 16. Übergeben des Kontexts an eine andere Methode
- 17. Android implizite Absicht
- 18. Android Anfrage an einen anderen Dienst - explizite vs implizite Absicht
- 19. Android-Absicht, den bevorzugten Browser des Benutzers zu öffnen
- 20. Android: Übergeben von Variablen an einen bereits ausgeführten Dienst
- 21. ID des HTML-Elements an PHP übergeben
- 22. Übergeben des aktuellen HTMLEelements an ng-click
- 23. Übergeben des Strukturwerts an eine Funktion
- 24. Parameter an Basisklassenkonstruktor übergeben oder Instanzvariable verwenden?
- 25. übergeben Daten an Dialer in Android
- 26. Android PreferenceFragment Ergebnis aus Absicht
- 27. android ausstehende Absicht Benachrichtigung Problem
- 28. android - Nachricht von Broadcast an Aktivität übergeben
- 29. Android: AppWidgetId an einen Dienst übergeben
- 30. Android-Limit-Zeiterfassung mit Absicht
Ich frage über GetParcelable, für was? – yital9
Es wird ein Array Ihres Objekts zurückgeben, das Sie übergeben haben – MAC
Entschuldigung, fühlen Sie den Unterschied zwischen getParcelableArrayExtra und getParcelable? – yital9