我尝试在片段和活动之间设置和接口,首先是我的活动中的界面
private PLRListener KListener;
public interface PLRListener{
void updateProgress(long e, long z);
void pause();
void play(long e, long z);
}
我现在有FragmentPagerAdapter
的viewPager,我在片段
public class myfragment extends Fragment implements MainActivity.PLRListener {
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
((MainActivity)getActivity()).setListener(this);
} catch (ClassCastException e) {
throw new ClassCastException("www");
}
}
@Override
public void pause() {
//change background on fragment
}
@Override
public void play(long e, long z) {
//change text on fragment
}
}
现在它的工作,但工作在下一个片段不在可见片段上 所以它的on回调函数改变了可见片段布局的背景和文本
ex:我有三个片段,我启动了应用程序
fragment1 fragment2 fragment2
当片段2上的iam和回调函数在fragment3上运行其更新时,它在片段1和i上运行回调函数,其更新片段2
答案 0 :(得分:0)
如果您使用FragmentPagerAdapter
,则必须考虑此类会加载多个片段,因为OffscreenPageLimit
的默认值为1,且不能低于1。每次调用onAttach()
片段时设置监听器。 ((MainActivity)getActivity()).setListener(this);