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);
}
}
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