那用ViewPager控件,可以额外加个按钮跳转到 第三个页面,直接滑动到第三个页面貌似 不太行,如果这样做的话 无法滑动到第二个页面了。

解决方案 »

  1.   

    肯定是有额外按钮的,我的描述中说了
    点击按钮一进入一界面,按钮三进入界面三。。
    如果使用ViewPager方法的话,那么我直接点击按钮三显示 界面三的的方法是调用哪一个呢?
    我找不到
      

  2.   

    今天专门查了一下
    ViewPager是可以的,
    可以使用viewPager.setCurrentItem(N);的方法。
    但是ViewFlipper好像不行。
    上一个例子吧。public class MainPage extends RelativeLayout {
    MainPageService service;
    Context context;
    Activity activity;
    MyListen mylisten; private ViewPager viewPager;
    private ArrayList<View> pageViews;
    // private ViewGroup group; 
    Page1 page1;
    Page2 page2;
    Page3 page3;
    Page4 page4;
    Page5 page5; LinearLayout item;
    ImageButton btn1;
    ImageButton btn2;
    ImageButton btn3;
    ImageButton btn4;
    ImageButton btn5; public MainPage(Context context, MainPageService service) {
    super(context);
    this.context = context;
    this.activity = (Activity) context;
    this.service=service;
    inflate(context, R.layout.mainpage, this);
    init();
    getAllElements();
    setListen();
    setListView();
    setItem();
    setButton();
    } private void init() {
    mylisten = new MyListen();
    } private void getAllElements() {
    viewPager = (android.support.v4.view.ViewPager) findViewById(R.id.guidePages);
    // group =(ViewGroup) findViewById(R.id.viewGroup);
    item = (LinearLayout) findViewById(R.id.itemview);
    btn1 = (ImageButton) findViewById(R.id.one);
    btn2 = (ImageButton) findViewById(R.id.two);
    btn3 = (ImageButton) findViewById(R.id.three);
    btn4 = (ImageButton) findViewById(R.id.four);
    btn5 = (ImageButton) findViewById(R.id.five);
    btn1.getLayoutParams().width = PhoneUtil.screenWidth / 5;
    btn1.getLayoutParams().height = PhoneUtil.unitHeight;
    btn2.getLayoutParams().width = PhoneUtil.screenWidth / 5;
    btn2.getLayoutParams().height = PhoneUtil.unitHeight;
    btn3.getLayoutParams().width = PhoneUtil.screenWidth / 5;
    btn3.getLayoutParams().height = PhoneUtil.unitHeight;
    btn4.getLayoutParams().width = PhoneUtil.screenWidth / 5;
    btn4.getLayoutParams().height = PhoneUtil.unitHeight;
    btn5.getLayoutParams().width = PhoneUtil.screenWidth / 5;
    btn5.getLayoutParams().height = PhoneUtil.unitHeight;
    } private void setButton() {
    btn1.setBackgroundResource(R.drawable.main_btn);
    btn2.setBackgroundResource(R.drawable.user_btn);
    btn3.setBackgroundResource(R.drawable.earn_btn);
    btn4.setBackgroundResource(R.drawable.exchange_btn);
    btn5.setBackgroundResource(R.drawable.more_btn); } private void setListView() {
    viewPager.getLayoutParams().width = -1;
    viewPager.getLayoutParams().height = PhoneUtil.screenHeight
    - PhoneUtil.unitHeight - PhoneUtil.sbar; page1 = new Page1(context,service);
    page2 = new Page2(context,service);
    page3 = new Page3(context,service);
    page4 = new Page4(context,service);
    page5 = new Page5(context,service); pageViews = new ArrayList<View>();  
    pageViews.add(page1);
    pageViews.add(page2);
    pageViews.add(page3);
    pageViews.add(page4);
    pageViews.add(page5);

    } private void setItem() {
    viewPager.setAdapter(new GuidePageAdapter());  
    item.getLayoutParams().width = -1;
    item.getLayoutParams().height = PhoneUtil.unitHeight;
    android.widget.RelativeLayout.LayoutParams viewPager_lp= (LayoutParams) viewPager.getLayoutParams();
    viewPager_lp.setMargins(0, 0, 0, PhoneUtil.unitHeight); } private void setListen() {
    btn1.setOnClickListener(mylisten);
    btn2.setOnClickListener(mylisten);
    btn3.setOnClickListener(mylisten);
    btn4.setOnClickListener(mylisten);
    btn5.setOnClickListener(mylisten);
    } class MyListen implements OnClickListener { @Override
    public void onClick(View v) { if (btn1 == v) {
    viewPager.setCurrentItem(0);
    } else if (btn2 == v) {
    viewPager.setCurrentItem(1);
    } else if (btn3 == v) {
    viewPager.setCurrentItem(2);
    } else if (btn4 == v) {
    viewPager.setCurrentItem(3);
    } else if (btn5 == v) {
    viewPager.setCurrentItem(4);
    } else { }
    }
    } /** 指引页面Adapter */
        class GuidePageAdapter extends PagerAdapter {  
           
            @Override  
            public int getCount() {  
                return pageViews.size();  
            }  
      
            @Override  
            public boolean isViewFromObject(View arg0, Object arg1) {  
                return arg0 == arg1;  
            }  
      
            @Override  
            public int getItemPosition(Object object) {  
                // TODO Auto-generated method stub  
                return super.getItemPosition(object);  
            }  
      
            @Override  
            public void destroyItem(View arg0, int arg1, Object arg2) {  
                // TODO Auto-generated method stub  
                ((ViewPager) arg0).removeView(pageViews.get(arg1));  
            }  
      
            @Override  
            public Object instantiateItem(View arg0, int arg1) {  
                // TODO Auto-generated method stub  
                ((ViewPager) arg0).addView(pageViews.get(arg1));  
                return pageViews.get(arg1);  
            }  
      
            @Override  
            public void restoreState(Parcelable arg0, ClassLoader arg1) {  
                // TODO Auto-generated method stub  
      
            }  
      
            @Override  
            public Parcelable saveState() {  
                // TODO Auto-generated method stub  
                return null;  
            }  
      
            @Override  
            public void startUpdate(View arg0) {  
                // TODO Auto-generated method stub  
      
            }  
      
            @Override  
            public void finishUpdate(View arg0) {  
                // TODO Auto-generated method stub  
      
            }  
        } 
    }