最近在项目用用到ViewPager ,其中页面包含有Button,因为之前也有使用个ViewPager ,所以这个也照搬之前的方式,测试后发现点击button无法执行,这个button是在第一页面的默认页面,只有切换到第二页面后,回去点击button才会执行!开始也觉得是初始化的问题,但是还没有找到解决的方法,查了些时间找到了问题的所在:要在PagerAdapter适配器初始化:
@Override public Object instantiateItem(final View view, int position) { switch (position) { case 0: LinearLayout new_stir = (LinearLayout) mListViews.get(position) .findViewById(R.id.new_task); LinearLayout carmera = (LinearLayout) mListViews.get(position) .findViewById(R.id.take_photo); LinearLayout picture = (LinearLayout) mListViews.get(position) .findViewById(R.id.pick_photo); LinearLayout share = (LinearLayout) mListViews.get(position) .findViewById(R.id.share_to_fr); LinearLayout system = (LinearLayout) mListViews.get(position) .findViewById(R.id.setting); new_stir.setOnClickListener(new MyOnClickListener(0)); carmera.setOnClickListener(new MyOnClickListener(1)); picture.setOnClickListener(new MyOnClickListener(2)); share.setOnClickListener(new MyOnClickListener(3)); system.setOnClickListener(new MyOnClickListener(4)); break; default: break; } ((ViewPager) view).addView(mListViews.get(position), 0); return mListViews.get(position); }
接着调试可以执行了!