我有两个 fragment ,在不同的类中声明 - AFragment 和 BFragment。我的 MainActivity 看起来有点像这样:
public class MainActivity extends SherlockFragmentActivity implements ActionBar.TabListener
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab firstTab = getSupportActionBar().newTab().setText("Fragment A");
ActionBar.Tab secondTab = getSupportActionBar().newTab().setText("Fragment B");
SherlockFragment firstFragment = new AFragment();
SherlockFragment secondFragment = new BFragment();
firstTab.setTabListener(this);
secondTab.setTabListener(this);
getSupportActionBar().addTab(firstTab);
getSupportActionBar().addTab(secondTab);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
switch (tab.getPosition())
{
case 0:
ft.replace(R.id.fragment_container, new AFragment());
break;
case 1:
ft.replace(R.id.fragment_container, new BFragment());
break;
}
Toast.makeText(this, tab.getText(), Toast.LENGTH_LONG).show();
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
}
我的问题是,如何在两个 fragment 之间传递变量(例如整数)?例如,我按下第一个 fragment 中的按钮,特定的整数将出现在第二个 fragment 的 TextView 中。
最佳答案
fragment 是为了重复使用...也就是说,两个 fragment 不应该不直接在彼此之间传递数据。相反,您应该定义 callback method在 Activity 中。这将确保您可以在需要时在您的应用程序(以及您制作的其他应用程序)的其他地方重复使用您的 fragment 。
关于android - 在两个 fragment 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11177076/