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);
};
}
第一种方法方便
Android ViewPager设置监听注意事项的更多相关文章
- [转]android:动态创建多个按钮 及 批量设置监听
之前投机取巧,先创建好多个按钮,再根据需要的数量进行部分隐藏,不过还是逃不过呀. 这样根本无法批量地 findId,批量地 设置监听. 所以今天还是认认真真地研究回“动态创建按钮”,终于,通过不断尝试 ...
- NavigationView头部设置监听事件
直接写解决方法吧: 1.将XML里的静态引入删除: <android.support.design.widget.NavigationView android:id="@+id/nav ...
- UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法
基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...
- android的电话监听
android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...
- Android中添加监听回调接口的方法
在Android中,我们经常会添加一些监听回调的接口供别的类来回调,比如自定义一个PopupWindow,需要让new这个PopupWindow的Activity来监听PopupWindow中的一些组 ...
- Android CheckBox的监听事件
1.在xml文件中定义CheckBox,一定要定义id <CheckBox android:id="@+id/beijing" android:layout_width=&q ...
- Android 手势水平监听判断
package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...
- Android中如何监听GPS开启和关闭
转自 chenming 原文 Android中如何监听GPS开启和关闭 摘要: 本文简单总结了如何监听GPS开关的小技巧 有时需要监听GPS的开关(这种需求并不多见).实现的思路是监听代表 GPS ...
- Android手机上监听短信的两种方式
Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...
随机推荐
- java应用破解之破解 jeb mips 2.3.3
前言 jeb 的新版支持 mips的反编译 ,于是去官网申请一个试用版,试用版的限制还是比较多的,比如 使用时间验证,没法复制粘贴 等,于是想尝试看看能否破解,同时填了 java破解 这个坑. 修改版 ...
- windows 静态IP设置举例
IP 172.20.108.239 子网掩码 255.255.255.0 网关 172.20.108.1
- idea 自动导入包设置
- mysql 字符串函数、分组函数
字符串函数 1.concat 函数 drop table test;create table test(id int(4), name varchar(10), sex char(2));insert ...
- Android组件系列----当前Activity跳转到另一个Activity的详细过程
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- ActionContext和ServletActionContext小结(转)
ActionContext和ServletActionContext小结 1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Act ...
- scrapy实战--爬取报刊名称及地址
目标:爬取全国报刊名称及地址 链接:http://news.xinhuanet.com/zgjx/2007-09/13/content_6714741.htm 目的:练习scrapy爬取数据 学习过s ...
- Java简单的数据库连接
package test.postgre; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Res ...
- MySQL:关于 unauthenticated user
一.现象 在生产环境中我们偶尔会遇到show processlist:显示host为 unauthenticated user 这样的连接,同时伴有数据库服务器层面的load,sys cpu较高,或者 ...
- Mysql5.7 的错误日志中最常见的note级别日志解释
在使用mysql5.7的时候,发现了不少在mysql5.6上不曾见过的日志,级别为note, 最常见的note日志以下三种,下面我们来逐个解释. 第一种,Aborted connectio ...