android - 在两个 fragment 之间传递数据

标签 android android-fragments actionbarsherlock android-actionbar

我有两个 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/

相关文章:

android - ActionBarSherlock 和 ShareActionProvider 导致 InflateException

java - 如何以编程方式插入带有显示名称和照片的通话记录条目?

android - 如何在 KSOAP2 中将 transport.dump 大小从 256 字节增加到 512 或更多字节?

android - 将 fragment 用于 Android >= 4.0 的选项卡式 View (无操作栏)

android - 怎样才能让ActionBar上的item为左一中右一?

java - ActionBarSherlock - 共享内容图标问题

Android如何在gradle文件中使用字符串资源

Android - 根据屏幕密度通过网络服务从 URL 获取图像?

android - 解决 Logcat 警告消息

android - 你能在替换时给 fragment 额外的东西吗?