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: ...
随机推荐
- 1finally与return、exit()
public class TestException { public static void main(String[] args) { String[] str = {"1", ...
- java 方法重写和属性重写
重写,子类对父类方法不满意,重写,但这是重写,要与父类的方法一模一样.方法名相同:参数列表相同:返回值相同或子类的返回值是父类返回值的子类型,父类是long,子类是int也不可以,因为父类引用指向子类 ...
- 【Java】得到当前系统时间,精确到毫秒
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; public class Ma ...
- Django之自定义权限
官方解释 Custom permissions¶ To create custom permissions for a given model object, use the permissions ...
- springMVC入门-02
本节会在上节基础上讨论springMVC如何传值的问题. 在添加dispatcherServlet之后,拦截器会将url中的参数拦截下来,使之可以在controller中使用.以下代码就是在前台输入u ...
- Linux setfacl/getfacl命令详解
setfacl,命令名,设置文件访问控制列表,即ACL规则.而Acl(Access Control List)就是访问控制列表 setfacl常见命令参数 setfacl 2.2.51 -- 设定文件 ...
- C盘下出现msdia80.dll文件
删除方法 https://jingyan.baidu.com/article/63acb44acef55661fdc17e56.html 或者 https://www.cnblogs.com/ggll ...
- return 返回值的问题
def yue(): print("1. 打开手机") print("2. 打开陌陌") print("3. 找个漂亮的小姐姐") prin ...
- Spring Boot 以 war 方式部署
Spring Boot 默认自带了一个嵌入式的 Tomcat 服务器,可以以jar方式运行,更为常见的情况是需要将 Spring Boot 应用打包成一个 war 包,部署到 Tomcat.Jerry ...
- JS和css实现检测移动设备方向的变化并判断横竖屏幕
这篇文章主要介绍了JS和css实现检测移动设备方向的变化并判断横竖屏幕,本文分别给出实现代码,需要的朋友可以参考下 方法一:用触发手机的横屏和竖屏之间的切换的事件 [自测可用, chrome , 手 ...