在FragmentStatePagerAdapter上设置一个ItemClickListener

时间:2018-06-25 16:24:54

标签: android android-viewpager

我已经用FragmentStatePagerAdapter实现了ViewPager,我想要一个ItemClickListener,以便当用户单击Viewpager的每个片段时可以打开详细信息屏幕。我找不到任何可用的此类方法。

2 个答案:

答案 0 :(得分:0)

您应该实现一个回调接口,以在片段和包含的活动之间进行通信。在每个片段中,设置所需的侦听器,然后将所需的所有信息传递回您的活动以处理点击。

public class MyFragment extends Fragment {
    public interface MyFragmentListener {
        void onTheActivityICareAbout();
    }

    private MyFragmentListener mCallback;

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);

        try {
            mCallback = (MyFragmentListener) context;
        } catch (ClassCastException e) {
            throw new ClassCastException(context.toString()
                + " must implement MyFragmentListener");
        }
    }
}

然后,当您绑定视图时,将列表器设置为在需要的任何事件上使用回调,并且您的活动具有集中的代码来处理该事件。任何接口方法也可以用于将数据传递回活动。

您可以查看此link以获得更多详细信息。

答案 1 :(得分:0)

您的FragmentStatePageAdapter将具有如下所示的方法:

override fun getItem(day: Int): Fragment = YourPageFrament.newInstance()

因此,在YourPageFragment的代码中,您可以在片段本身的OnClickListener上进行设置。

您可以通过修改该片段的XML布局文件以使其包含线性布局或某种布局来设置此侦听器。

然后,在YourPageFragment类中,可能在onCreateView()方法中,可以在片段的布局上设置OnClickListener。