kstg595988 2014-04-19 05:26 采纳率: 0%
浏览 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.

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

报告相同问题?

悬赏问题

  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA