1

要点を言えば、私は ViewPager を使用しており、複数のフラグメントがあります。各フラグメントには独自のフォームがあります

+=================+
|    Fragment1    |
+=================+
| Name (EditText) |
===================
| ID No (EditText)|
===================

+=================+ 
|    Fragment2    |
+=================+ 
| Name (EditText) |
=================== 
| ID No (EditText)|
===================

Fragmentではなく、FragmentActivityにボタンが1つあります。これらの EditTexts をすべて fragmentActivity からリストに追加/収集するにはどうすればよいですか?

助けてくれてありがとう

4

2 に答える 2

3

すべてのフラグメントに一意のタグを付けます。たとえば、fragment1 にはタグ「frag1」があり、fragment2 にはタグ「frag2」があります。FragmentActivity では、以下のようにタグを使用してフラグメントにアクセスできます。

Fragment1 fragment1 = (Fragment1)getFragmentManager().findFragmentByTag("frag1");
Fragment2 fragment2  = (Fragment2)getFragmentManager().findFragmentByTag("frag2");

これで、fragment1/fragment2 の edittext に次のようにアクセスできます。

EditText editText1 = (EditText) fragment1.getView().findViewById(R.id.editText);

次に、次のようにテキストを取得できます editText1.getText();

于 2012-06-11T12:04:24.450 に答える
0

別の可能性は、getView と findViewById を使用したくない場合です (どちらがよりパフォーマンスが高いかはよくわかりません。誰かがそれについて何か知っていれば、喜んで説明してもらいます:)):

class MyFirstFragment extends Fragment { 
    ... 
    private EditText someEditText; 
    ...
    public Object doSomethingAndGetMeSomething() {
        return somePreviouslyDefinedData;
    }
}

タグで受け取ったフラグメントをこの Java クラスに直接キャストするだけです。

MyFirstFragment firstFrag = (MyFirstFragment) getFragmentManager().findFragmentByTag("frag1");

定義したいくつかの関数を呼び出して、必要なタスクを実行できるようにします。

ビューを作成するときにビューへの参照を保持する必要があるため、パフォーマンスの点でどちらの方法が優れているかわかりません..?

于 2012-06-11T12:09:28.070 に答える