Android 如何将数据从活动传递到viewpager中的片段

Android 如何将数据从活动传递到viewpager中的片段,android,interface,android-viewpager,fragment,android-tabactivity,Android,Interface,Android Viewpager,Fragment,Android Tabactivity,我有一个包含3个选项卡的选项卡活动。 在我的活动中有一个edittext和按钮,一个textview在片段中 每当我需要更改片段textview时,我只需在edittext中添加一些文本,然后单击后面的按钮。该文本应出现在片段中。 在这里,我无法使用setArguments。奥托的事件总线进行救援。 我要处理的正是这种情况。在我的例子中,我需要在带有锁定滑动的viewpager中触发片段更改。所以 格拉德尔: // EventBus implementation 'org.greenrobot:

我有一个包含3个选项卡的选项卡活动。

在我的活动中有一个edittext按钮,一个textview在片段中

每当我需要更改片段textview时,我只需在edittext中添加一些文本,然后单击后面的按钮。该文本应出现在片段中。
在这里,我无法使用setArguments。

奥托的事件总线进行救援。 我要处理的正是这种情况。在我的例子中,我需要在带有锁定滑动的viewpager中触发片段更改。所以

格拉德尔:

// EventBus
implementation 'org.greenrobot:eventbus:3.0.0'
创建一个将从活动传递到片段的事件

public class FragmentChangeEvent {
public int fragmentToBeChanged;
 //here you can define variables of your choosing, just make sure you're including them into the constructor of the event.
public FragmentChangeEvent(int fragmentToBeChanged) {
    this.fragmentToBeChanged = fragmentToBeChanged;
    }
}
从活动中触发事件

  EventBus.getDefault().post(new FragmentChangeEvent(1));
最后让你的片段知道总线和事件

@Subscribe(threadMode = ThreadMode.MAIN)
public void onChangeFragmentEvent(FragmentChangeEvent event) {
  //do your work here.
   }
}

如果使用ViewPager呈现片段,请在父活动中使用此代码

if(viewPager.getCurrentItem() == 1) //First fragment
{
     FragmentOne frag1 = (FragmentOne)viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem());
     frag1.textview.setText(yourText);
}