kstg595988 2014-04-19 05:26 采纳率: 50%
浏览 3725
已采纳

viewpager 点击事件的响应

如何在viewpager 中的主Activity中得到其他页面的Button

public class MainActivity extends Activity {
private LinearLayout indexLayout;
private ImageView[] indexViews=new ImageView[4];
private ViewPager vp;
private View[] views=new View[4];
private Button btn3;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initIndex();

    vp=(ViewPager)findViewById(R.id.viewPager);
    views[0]=getLayoutInflater().inflate(R.layout.page1, null);
    views[1]=getLayoutInflater().inflate(R.layout.page2, null);
    views[2]=getLayoutInflater().inflate(R.layout.page3, null);
    views[3]=getLayoutInflater().inflate(R.layout.page4, null);

    ViewPagerAdapter adapter=new ViewPagerAdapter();
    vp.setAdapter(adapter);
    ViewPager.OnPageChangeListener listener=new ViewPager.OnPageChangeListener() {

        public void onPageSelected(int arg0) {
            System.out.println("onPageSelected");
            for(ImageView iv:indexViews){
                iv.setBackgroundResource(R.drawable.present);
            }
            indexViews[arg0].setBackgroundResource(R.drawable.santa);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub

        }
    };
    vp.setOnPageChangeListener(listener);
}
class ViewPagerAdapter extends PagerAdapter{
    public int getCount() {
        return views.length;
    }
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0==arg1;
    }
    @Override
    public void destroyItem(View container, int position, Object object) {
        ((ViewPager)container).removeView(views[position]);
    }
    @Override
    public Object instantiateItem(View container, int position) {
        ((ViewPager)container).addView(views[position]);
        return views[position];
    }

}

private void initIndex() {
    indexLayout=(LinearLayout)findViewById(R.id.indexLayout);
    for(int i=0;i<4;++i){
        indexViews[i]=new ImageView(this);
    }
    indexViews[0].setBackgroundResource(R.drawable.santa);
    indexViews[0].setLayoutParams(new LayoutParams(25,25));
    for(int i=1;i<=3;++i){
        indexViews[i].setBackgroundResource(R.drawable.present);
        indexViews[i].setLayoutParams(new LayoutParams(25,25));//width,height
    }
    for(int i=0;i<4;++i){
        indexLayout.addView(indexViews[i]);
    }

}
}

  • 写回答

1条回答 默认 最新

  • 秋风枝头 2014-04-19 14:57
    关注

    第一我想明确以下你的提问:
    你的提问的意思应该是:在含有viewpager的activity中,如何获取不同pager的button实例。
    如果你的问题是这样的话,我觉得有下面的解决办法,你可以尝试以下。
    比如说,你想获取第一个pager里面的buton,你可以通过Button button=view[0].findViewById(R.id.buttonId);来获取Button.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题