首先 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);
}; }

第一种方法方便

Android ViewPager设置监听注意事项的更多相关文章

  1. [转]android:动态创建多个按钮 及 批量设置监听

    之前投机取巧,先创建好多个按钮,再根据需要的数量进行部分隐藏,不过还是逃不过呀. 这样根本无法批量地 findId,批量地 设置监听. 所以今天还是认认真真地研究回“动态创建按钮”,终于,通过不断尝试 ...

  2. NavigationView头部设置监听事件

    直接写解决方法吧: 1.将XML里的静态引入删除: <android.support.design.widget.NavigationView android:id="@+id/nav ...

  3. UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法

    基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...

  4. android的电话监听

    android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...

  5. Android中添加监听回调接口的方法

    在Android中,我们经常会添加一些监听回调的接口供别的类来回调,比如自定义一个PopupWindow,需要让new这个PopupWindow的Activity来监听PopupWindow中的一些组 ...

  6. Android CheckBox的监听事件

    1.在xml文件中定义CheckBox,一定要定义id <CheckBox android:id="@+id/beijing" android:layout_width=&q ...

  7. Android 手势水平监听判断

    package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...

  8. Android中如何监听GPS开启和关闭

    转自 chenming 原文 Android中如何监听GPS开启和关闭   摘要: 本文简单总结了如何监听GPS开关的小技巧 有时需要监听GPS的开关(这种需求并不多见).实现的思路是监听代表 GPS ...

  9. Android手机上监听短信的两种方式

    Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...

随机推荐

  1. flutter开发中常用的dart插件

    flutter插件官网地址:https://pub.dartlang.org/packages/ 1. image_picker 一个可以从图库选择图片,并可以用相机拍摄新照片的flutter插件 2 ...

  2. 分布式文件系统比较出名的有HDFS  和 GFS

    分布式文件系统比较出名的有HDFS  和 GFS,其中HDFS比较简单一点.本文是一篇描述非常简洁易懂的漫画形式讲解HDFS的原理.比一般PPT要通俗易懂很多.不难得的学习资料. 1.三个部分: 客户 ...

  3. mysql的日期函数介绍

    仅供参考 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03 ...

  4. Angular1.x DirtyChecking(脏值检查) $watch, $apply, $digest

    Dirty Checking (脏值检查) Digest cycle and $scope Digest cycle and $scope First and foremost, AngularJS ...

  5. LeetCode 之二叉树中序遍历(使用栈实现)

    1.题目描述 2.使用栈实现难度大于使用递归实现 3.代码 vector<int> inorderTraversal(TreeNode* root) { // 非递归实现,借助栈 vect ...

  6. poj_3275 Ranking the cows

    Ranking the cows Description Each of Farmer John's N cows (1 ≤ N ≤ 1,000) produces milk at a differe ...

  7. 【MySQL】Linux下mysql安装全过程——小白入门篇(含有问题详解)

    本次安装操作在申请的腾讯云上实现(版本:CentOS Linux release 7.4.1708 (Core) ). 根据教程实现(中途各种挖坑,填坑...),地址:http://www.runoo ...

  8. Java各种数据库连接大全

    1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ...

  9. 解析UIControl

    解析UIControl 从下图可以看出,UIControl继承自UIView,添加了响应事件功能. UIButton之所以能响应各种各样的事件是因为继承自UIControl 使用UIControl可以 ...

  10. 铁乐学python_day05-作业

    1,有如下变量(tu是个元祖),请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2": [&q ...