如何根据viewpager中的项目位置调用intent?

时间:2014-05-01 11:41:25

标签: android android-viewpager

我想从图像阵列中制作一个意图,但我不知道如何使用position。意图与我创建的布局不匹配。

这里是代码:

private class ImagePagerAdapter extends PagerAdapter {

    private int[] mImages = new int[] { R.drawable.kuhp_a,
            R.drawable.kuhp_b, R.drawable.kuhp_c };

    @Override
    public int getCount() {
        return mImages.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        Context context = MainActivity.this;
        ImageView imageView = new ImageView(context);

        imageView.setScaleType(ScaleType.FIT_XY);
        imageView.setImageResource(mImages[position]);

        Button btnOK = (Button) findViewById(R.id.btnOK);

        if (position == 0) {
            btnOK.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i = new Intent(MainActivity.this, FirstAct.class);
                    startActivity(i);
                }
            });
        } else if (position == 1) {
            btnOK.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i = new Intent(MainActivity.this,
                            SecondAct.class);
                    startActivity(i);
                }
            });
        } else if (position == mImages.length - 1) {
            btnOK.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i = new Intent(MainActivity.this, ThirdAct.class);
                    startActivity(i);
                }
            });

        }

        ((ViewPager) container).addView(imageView, 0);

        return imageView;
    }

firstact:

public class FirstAct extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.buku_satu);

    }

secondact和第三个具有相同的代码,如第一幕,但它有不同的布局。

1 个答案:

答案 0 :(得分:0)

这样做

private class ImagePagerAdapter extends PagerAdapter {

    private int[] mImages = new int[] { R.drawable.kuhp_a, R.drawable.kuhp_b, R.drawable.kuhp_c };

    @Override
    public int getCount() {
        return mImages.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {

        Context context = MainActivity.this;
        ImageView imageView = new ImageView(context);

        imageView.setScaleType(ScaleType.FIT_XY);
        imageView.setImageResource(mImages[position]);

        final Button btnOK = (Button) findViewById(R.id.btnOK);
        btnOK.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                switch (position) {
                case 0:
                    Intent i = new Intent(MainActivity.this, FirstAct.class);
                    startActivity(i);
                    break;
                case 1:
                    Intent i = new Intent(MainActivity.this, SecondAct.class);
                    startActivity(i);
                    break;

                case 2:
                    Intent i = new Intent(MainActivity.this, ThirdAct.class);
                    startActivity(i);
                    break;

                default:
                    break;
                }

            }
        });

        ((ViewPager) container).addView(imageView, 0);

        return imageView;
    }
}