74

バンドルにgetParcelableArrayList,getParcelableメソッドがある理由。しかし、 方法IntentしかありませputParcelableArrayListExtraんか?1 つの要素object<T>ではなく、のみを送信できますか? ArrayListでは、何getParcelableのため?

4

5 に答える 5

168

インテントは、一連のオーバーロードputExtra()メソッドを提供します。

クラス Foo が Parcelable を適切に実装し、それを Activity の Intent に入れるとします。

Intent intent = new Intent(getBaseContext(), NextActivity.class);
Foo foo = new Foo();
intent.putExtra("foo ", foo);
startActivity(intent);

別のアクティビティのインテントから取得するには:

Foo foo = getIntent().getExtras().getParcelable("foo");

お役に立てれば。

于 2012-04-11T22:33:37.167 に答える
1
Parcelable p[] =getIntent().getParcelableArrayExtra("parcel");
于 2012-04-11T14:03:15.870 に答える
-1

モデルはParcelableインターフェイスと静的CREATORメソッドを実装する必要があることを覚えておくことが重要です。このケースはリスト用です

 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);
        }
    }
于 2017-08-21T19:35:20.923 に答える