android设置接口与片段和活动

时间:2017-05-18 12:05:05

标签: android android-fragments

我尝试在片段和活动之间设置和接口,首先是我的活动中的界面

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

1 个答案:

答案 0 :(得分:0)

如果您使用FragmentPagerAdapter,则必须考虑此类会加载多个片段,因为OffscreenPageLimit的默认值为1,且不能低于1。每次调用onAttach()片段时设置监听器。 ((MainActivity)getActivity()).setListener(this);