Android开发之ViewPager
来源:互联网 发布:ecshop 3.6 数据字典 编辑:程序博客网 时间:2024/06/05 09:50
Android开发之ViewPager
最近公司的的一款应用有一个做图片轮播并且点击的效果,图片轮播的功能比较好实现,我们只要开启一个线程,使用Thread和Handle实现,采用取余数的方法就可以实现,但在这里说明开启线程的时候,我们一般不会一直让线程做操作,我们需要做一个标志,而不是直接使用线程的stop方法(这个方法已经停止使用了),做线程轮播就说这么多,那对于ViewPager的item做点击监听却没有类似ListView这样的方法提供给我们使用,相信以后会有的,那现在应该怎么做呢?
百度了很多相关的资料,但实现不了,这里我给出了自己的思路,在做页面监听的时候我们可以获取到页面的position,这个很重要我创建了一个全局变量currentItem,将position赋值给currentItem,然后用ViewPager的setonclicklistener方法做文章,这样就可以简单的实现了ViewPager的item的点击监听了。
pager.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "你点击了地"+currentItem+"张", Toast.LENGTH_SHORT).show(); }});就几行代码而已,亲测有效,详细的在下面:
package com.example.administrator.myapplication;import android.app.Activity;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity { AutoCompleteTextView text; ArrayAdapter arrayAdapter; ViewPager pager; List<View> mImages; ViewPagerAdapter adapter; int currentItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImages = new ArrayList<>(); View view1 = View.inflate(this,R.layout.image1,null); mImages.add(view1); View view2 = View.inflate(this,R.layout.image2,null); mImages.add(view2); View view3 = View.inflate(this,R.layout.image3,null); mImages.add(view3); adapter = new ViewPagerAdapter(); findView(); } private void findView(){ text = (AutoCompleteTextView) findViewById(R.id.actv_card_no); String [] arr={"aa","aab","aac"}; arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,arr); text.setAdapter(arrayAdapter); pager = (ViewPager) findViewById(R.id.vp); pager.setAdapter(adapter); pager.setOnPageChangeListener(new pagerListener()); pager.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "你点击了地"+currentItem+"张", Toast.LENGTH_SHORT).show(); } }); } class ViewPagerAdapter extends PagerAdapter{ @Override public int getCount() { return mImages.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, final int position) { container.addView(mImages.get(position)); mImages.get(position).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "你点击了地"+position+"张", Toast.LENGTH_SHORT).show(); } }); return mImages.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(mImages.get(position)); } } class pagerListener implements ViewPager.OnPageChangeListener{ @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { currentItem = position; } @Override public void onPageScrollStateChanged(int state) { } }}这是自己的开发笔记,也希望帮助到开发者。
0 0
- Android开发之ViewPager
- Android开发之ViewPager
- android开发之ViewPager
- .android 开发之ViewPager内嵌套ViewPager
- Android应用开发之ViewPager
- Android开发之Viewpager动画
- Android开发之自定义控件--ViewPager
- Android开发之自定义控件--ViewPager
- android开发笔记之viewpager 基本使用方法
- Android开发之ViewPager显示页面切换
- android开发之两个ViewPager联动
- android开发之定制ViewPager滑动事件
- Android开发之ViewPager使用详解(一)
- Android开发之ViewPager切换动画
- android开发之ViewPager的使用
- Android 开发之 TabLayout + ViewPager 的使用
- android开发 - ViewPager使用
- Android开发学习之基于ViewPager实现Gallery画廊效果
- Android 自定义 View 之 draw 原理分析
- webpack解决‘config unkown property postcss’
- asp.net mvc checkboxlist的简单实现
- 匈牙利算法求二分图的最大匹配
- Continuation 异步化机制
- Android开发之ViewPager
- centos7源码安装mysql5.7
- 欢迎使用CSDN-markdown编辑器
- ImageView的图片,压缩成PNG,并得到二进制流数据
- 浪潮集团龙头企业--浪潮信息招聘存储人才
- nginx安装和信号量
- 列表、字典、集合的解析
- 1. Two Sum
- BeautifulSoup4的安装