Android:活动和片段活动之间的通信

时间:2014-07-17 17:03:59

标签: java android android-fragments interface

我有一个正常的android活动,其中包含选项的列表视图。选择选项后,它会通过意图启动片段活动。此片段活动本身包含一个操作栏,由3个片段组成。

我想要做的是根据活动的选择(包含列表视图) 选项)是将选定的位置编号发送到片段活动,从而发送3个片段

我发现了接口但是这些例子让人难以理解,有人可以帮助我。我只想将选定的位置发送给其他片段。

1 个答案:

答案 0 :(得分:4)

将所选位置从活动传递到FragmentActivity可以使用Bundle

完成

你的意图应该是这样的:

Intent intent = new Intent(Activity.this, FragmentActivity.class);
intent.putExtra("idforthevalue",selectedPOsition);
startActivity(intent);

然后在FragmentActivity上,您可以检索值:

Bundle extras = getIntent().getExtras();
    int position = 0;
    if(extras != null) {
        position = extras.getInt("idforthevalue");
    }

根据您添加片段的方式,您还可以使用FragmentTransaction

中的FragmentActivity中的Bundle将此值传递给它们
FragmentManager fragmentManager = getFragmentManager();  // or getSupportFragmentManager() if you are using compat lib
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

FragmentX fragmentX = new FragmentX();
Bundle bundle = new Bundle();
bundle.putInt("idforthevalue", position);
fragmentX.setArguments(bundle);

fragmentTransaction.replace(id_of_container, fragmentX).commit();

您可以再次检索片段中的值

        Bundle bundle = getArguments();
        if(bundle != null) {
            position = bundle.getInt("idforthevalue", 0);
        }

你可以对三个片段做同样的事情。