0
private void generateFragments() {
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    for (int i = 0; i < numberOfWorkouts; i++) {
        ft.add(LinearLayoutID, new ExerciseFragment());
    }
    ft.commit();
}

上記のコードは、NumberPicker から取得した値に従って動的な数のフラグメントを作成します。これは、必要な動的フラグメント作成を実現するために見つけた唯一の方法でしたが、問題は、後でアプリケーションで情報にアクセスする必要があることです。

  • 問題は、ExerciseFragment から情報を取得するにはどうすればよいかということです。
    • それぞれに 3 つの NumberPicker と 1 つの EditText が含まれています。
    • フラグメントの数は、1 から 20 までさまざまです。
4

1 に答える 1

1

これを行った場合:

for (int i = 0; i < numberOfWorkouts; i++) {
    ft.add(LinearLayoutID, new ExerciseFragment(), "TAG"+i);
}

各フラグメントにはトランザクションマネージャーに一意のTAGがあるため、このTAGからフラグメントを取得できます。findFragmentByTag

追加()

findFragmentByTag()

于 2012-07-15T21:47:19.053 に答える