Android ViewPager设立监听注意事项

Android ViewPager设置监听注意事项

首先 implements View.OnClickListener

因为Item比较多用这个方便

设置监听要注意地方,如果在 onCreate 直接 findViewById布局里的ID是会出错的

参考下面代码

    private void initAllViewPager() {
        viewpager = (ViewPager) findViewById(R.id.viewpager);
        //
        LayoutInflater inflater = getLayoutInflater();
        view1 = inflater.inflate(R.layout.test_page1, null);
        view2 = inflater.inflate(R.layout.test_page2, null); // gridview demo.
        //view3 = inflater.inflate(R.layout.test_page3, null);
        //view4 = inflater.inflate(R.layout.test_page4, null);
        viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
        viewList.add(view1);
        viewList.add(view2);
        //viewList.add(view3);
        //viewList.add(view4);


        viewpager.setAdapter(new DemoPagerAdapter());

        view1.findViewById(R.id.page1_item0).setOnClickListener(this);
        view1.findViewById(R.id.page1_item1).setOnClickListener(this);

}

设置监听在 setAdapter 前后都可以

另外一种方法是在 PagerAdapter 的 public Object instantiateItem(ViewGroup container, int position) 

里添加如下

        public Object instantiateItem(ViewGroup container, int position) {
            viewList.get(0).findViewById(R.id.page1_item3).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(MainActivity.this,"Click ok", Toast.LENGTH_SHORT).show();
                };
            });
                
            container.addView(viewList.get(position));


            return viewList.get(position);
        };

 

这个是按List来查找ID设置监听,或者

        public Object instantiateItem(ViewGroup container, int position) {
            reflectitemview= (ReflectItemView) findViewById(R.id.page1_item3);
            reflectitemview.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    Toast.makeText(MainActivity.this,"Click ok", Toast.LENGTH_SHORT).show();
                }
            });

            container.addView(viewList.get(position));


            return viewList.get(position);
        };

    }

 

第一种方法方便

1楼icon少女
你真的看得懂你的App市场评论吗?,,聚合分析、过滤泡沫、情感可视、发展预测,集四大功能于一体的App印象,是一款帮助App开发运维人员轻松便捷、快速有效的管理手机应用市场里App评论的SaaS产品。,废寝忘食几个月的App终于上线,你是不是又开始对手机应用市场里繁冗的用户评论觉得麻烦、看的头疼?, 1、解决麻烦,将聚合的评论信息通过微信和E-mail帮你每天/每周/每月实时关注你的App评论;,2、拒绝垃圾评论,自动过滤刷出来的泡沫评论信息,再也不用浪费时间;,3、透视评论背后的用户情感,真正把握用户对App的情感倾向;,4、预评不同版本的演化发展态势,聚焦重点主题分类进行对比,真正让评论对版本发展产生积极作用……,App印象,帮你真正看懂你的App评论。