Android 如何将数据从活动传递到viewpager中的片段
我有一个包含3个选项卡的选项卡活动。 在我的活动中有一个edittext和按钮,一个textview在片段中 每当我需要更改片段textview时,我只需在edittext中添加一些文本,然后单击后面的按钮。该文本应出现在片段中。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:
在这里,我无法使用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);
}