0

私は2Fragments FragmentAとを持っていFragmentBます。これら2つを使用して、タブ形式でFragmentActivity2を表示するタブAとBを作成し、タブの作成に使用しました。タブAにはとがあります。タブBにはTextViewのみがあります。ユーザーはタブAに値を入力します。最初にクリックするとデータが保存され、次にタブBに移動してタブAの値が表示されます。データを保存しましたが、タブBに値を表示できません。fragmentsFragmentStatePagerAdapterViewPagerviewEditTextButtonEditTextbuttonSharedPreferencesEditTextSharePrefereces

私のタブA:

confirmButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
session.setValue(mValue.getText().toString());
ViewPager mViewPager = (ViewPager) getActivity().findViewById(R.id.pager);
mViewPager.setCurrentItem(1);
                }
            });

マイタブB:

mValueFromTabA.setText(session.getValue());
4

2 に答える 2

1

文字列を 1 つ取り、ゲッターとセッターをFragmentActivityクラスに追加します。

お気に入り...

String HistoryFragment;

public String getHistoryFragment() {
    return HistoryFragment;
}


public void setHistoryFragment(String historyFragment) {
    HistoryFragment = historyFragment;
}

その後、 を呼び出して、現在のフラグメントから別のフラグメントにアクセスできますfindFragmentByTag(<tag of target fragment>)

詳細については、ViewPager での Fragments 間の通信のリンクを確認してください。

于 2013-03-09T05:53:54.133 に答える
0

これは、ユーザーに表示されないフラグメントがまだメモリに保持されていることを意味するため、フラグメントが再表示されたときに onCreate メソッドが呼び出されません。ViewPager のオフスクリーン ページ制限を 0 に設定することで、ページを切り替えるときにそれらを強制的にメモリから追い出すことができます。

mViewPager.setOffscreenPageLimit(0);
于 2013-03-09T05:11:10.880 に答える