0

グリッドビューを持つフラグメントがいくつかあります。グリッドビューの内容は、データベース内のどこからカーソルローダーを介して決定されます。したがって、dbクエリを除いて、フラグメントは同じです。違いを課すために、コンストラクターのような方法が必要です。私の解決策は、引数をバンドルに入れてから呼び出すことです

Fragment.instantiate(this,clss.getName(), newTab.args)

ここで、argsはString-whereとStringArray-whereArgsを含むバンドルです。これは正しい方法ですか?

4

2 に答える 2

2

新しいフラグメントを作成する最良の方法は、インスタンス化のためにフラグメントにメソッドを追加することです。たとえば、次のようになります。

public static DetailFragment newInstance(String id) {
    DetailFragment fragment = new DetailFragment();
    Bundle args = new Bundle();
    args.putString(KEY_ITEM, id);
    fragment.setArguments(args);

    return(fragment);
}

次に、データが必要な場合は、次のようにします。

this.getArguments().getString(KEY_ITEM);
于 2012-09-14T11:20:17.890 に答える
0

はい、このアプローチには何の問題もありません。

あなたができる他のことは、コンストラクターのwhere引数も渡すことです

于 2012-09-14T11:03:03.780 に答える