0

我有 2Fragments FragmentAFragmentB. 使用这两个,我创建了一个FragmentActivity以 Tab 格式显示 2 fragments,Tab A 和 B。FragmentStatePagerAdapterViewPager已用于创建 Tab view。选项卡 A 具有 aEditText和 a Button。Tab B 只有一个 TextView。用户将在 Tab A 中输入值,EditText首先button单击它将保存数据,SharedPreferences然后它将转到 Tab B 并显示 Tab A 的值EditText。我已将数据保存在其中,SharePrefereces但仍无法在选项卡 B 中显示值。

我的标签 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

取一个字符串并将 Getter 和 setter 添加到您的FragmentActivity类中。

像...

String HistoryFragment;

public String getHistoryFragment() {
    return HistoryFragment;
}


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

然后在我们可以通过调用从当前片段访问另一个片段之后findFragmentByTag(<tag of target fragment>)

有关更多信息,请查看ViewPager 中片段之间的通信链接。

于 2013-03-09T05:53:54.133 回答
0

这意味着您对用户不可见的片段仍保留在内存中,因此重新显示时不会调用它们的 onCreate 方法。您可以通过将 ViewPager 的离屏页面限制设置为 0 来强制它们在切换页面时被踢出内存。

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