我有一个包含 3 个选项卡的选项卡活动。
我的活动中有一个编辑文本和按钮,一个片段中的文本视图。
每当我需要更改片段文本视图时,我只需在编辑文本中添加一些文本并单击之后的按钮。该文本应出现在片段中。在这里我无法使用 setArguments。
如果您使用 ViewPager 渲染片段,请在父活动中使用此代码。
if(viewPager.getCurrentItem() == 1) //First fragment
{
FragmentOne frag1 = (FragmentOne)viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem());
frag1.textview.setText(yourText);
}
Otto's EventBus 前来救援。我正是有这种情况要处理。就我而言,我需要通过锁定的滑动在查看页中触发片段更改。所以
格拉德尔:
// 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.
}
}