ViewPager 的点击事件回调
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                ViewPager 的点击事件回调
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                今天在交流群看到有人問這個問題,禮拜五工作忙的差不多多了,閑暇時間就記錄一下呢,很簡單的,記得自己剛畢業的時候
也是請教了別人,沒想到時隔多年自己也能幫助到他人,
?首先需要知道 pagerAdapter 中 有?instantiateItem 這個方法的作用就是根據當前的posistion來創建對應的視圖并且將這個創建好的視圖添加到容器中,
可以打印下里面的position?
回調這個position 首先先定義一個 接口然后接口里面再寫一個空方法例如
  public interface CallBack {void OnClick(int position);} 
然后在定義這個接口方法,在通過快捷鍵生成get和set方法,當然由于get方法沒有用到可以直接刪除
‘
  private CallBack callBack;public void setCallBack(CallBack callBack) {this.callBack = callBack;} 
然后在監聽事件里面 調用接口里面的方法
  @Overridepublic Object instantiateItem(ViewGroup container, final int position) {View view = arrayList.get(position);view.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (callBack != null) {callBack.OnClick(position);}}});container.addView(view);return view;} 
?
這樣就寫好了? ,暴漏下adapter
public class PageAdapter extends PagerAdapter {private ArrayList<View> arrayList;private Context context;public PageAdapter() {}public PageAdapter(ArrayList<View> arrayList, Context context) {super();this.arrayList = arrayList;this.context = context;}// 返回視圖的個數@Overridepublic int getCount() {return arrayList.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {// 當返回為true的時候,就將根據當前的position得到的view展示出來return view == object;}// 這個方法的主要作用就是根據當前的posistion來創建對應的視圖,// 并且將這個創建好的視圖添加到容器中@Overridepublic Object instantiateItem(ViewGroup container, final int position) {View view = arrayList.get(position);view.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (callBack != null) {callBack.OnClick(position);}}});container.addView(view);return view;}// 這個方法的作用就是從容器中移除position所對應的視圖,// 而且這個移除的動作是在finishUpdate之前完成的。// 這個在 instantiateItem 方法中也提到過,// 也就是說在finishUpdate之前至少要完成兩個動作①原來視圖的移除②新視圖的增加@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(arrayList.get(position));}private CallBack callBack;public void setCallBack(CallBack callBack) {this.callBack = callBack;}public interface CallBack {void OnClick(int position);}}
 
最后說下說下使用
在activity 里面通過 adapter 調用接口里面方法就行了
   pageAdapter.setCallBack(new PageAdapter.CallBack() {@Overridepublic void OnClick(int position) {Toast.makeText(SimpleViewPagerActivity.this, "點擊了第" + position + "個", Toast.LENGTH_SHORT).show();}}); 
?
總結
以上是生活随笔為你收集整理的ViewPager 的点击事件回调的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 摩羯男如何追天蝎女?
 - 下一篇: Android TextView 在st