3

私は現在、アクティビティを開始する前にアプリに大きく依存しているアプリIntentsと、それらに与えられた追加機能を持っています。エクストラは、表示する必要があるコンテンツを提供する Web サービスを呼び出すときに使用されます。

私はそのモデルをFragment、画面の下部にある静的なモデル (Player とFragment呼びましょう) と、その上にあるメイン コンテンツを表示する別のモデル (Content と呼びましょう) に変換しようとしています。メイン画面でオプションを選択すると、 Content を置き換えて他のコンテンツが表示されFragmentます。

しかし、これらの新しいFragmentsものは現在Intents、エクストラに大きく依存しています。を新しいものに置き換える方法はありFragmentますが、エクストラを追加することはできますか?

もしそうなら、次のコードがあるとしましょう:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.fragment_holder, new MusicAlbumList(), "albumlist");
        ft.commit();

エクストラを MusicAlbumList に追加するにはどうすればよいですか?

それが不可能な場合、重要なデータが欠落しているために強制終了する前に、現在エクストラを介して新しいフラグメントに渡されているデータを取得するにはどうすればよいですか?

4

2 に答える 2

10

または、これを行うことができます

MusicAlbumList fragment = new MusicAlbumList();
Bundle args = new Bundle();
args.putString("StringName","Value here");
fragment.setArguments(args);

次に、交換作業を行います。次に、フラグメントで onStart または onCreate を呼び出しthis.getArguments();てバンドルをプルし、そこからエクストラを取得します。

于 2013-02-15T21:16:57.550 に答える
2

MusicAlbumList のコンストラクターをデフォルトのコンストラクターから new MusicAlbumList(int arg1, ...) のような引数を持つコンストラクターに変更し、コンストラクターを介して設定する値を渡します

于 2011-12-05T10:14:49.133 に答える