如何将位置值从一个类传递到另一个类

时间:2014-03-01 22:31:57

标签: android

我想从这个类中传递“position”的值:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.full_image);

    // get intent data
    Intent i = getIntent();

    // Selected image id
  int position = i.getExtras().getInt("id");

    // passing array index

    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
    viewPager.setBackgroundResource(0);
    SlideImage adapter = new SlideImage(this);
    viewPager.setAdapter(adapter);

    } 
    }

到这个班级:

public class SlideImage extends PagerAdapter {
Context context;


private int[] GalImages = { R.drawable.ppdt1, R.drawable.ppdt2,
        R.drawable.ppdt3, R.drawable.ppdt4, R.drawable.ppdt5,
        R.drawable.ppdt6, R.drawable.ppdt7, };


SlideImage(Context context) {
    this.context = context;
}

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

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

@Override
public Object instantiateItem(ViewGroup container, int position) {
    ImageView imageView = new ImageView(context);
    int padding = context.getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin);
    imageView.setPadding(padding, padding, padding, padding);
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);


    imageView.setImageResource(GalImages[position]);
    ((ViewPager) container).addView(imageView, 0);
    return imageView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    ((ViewPager) container).removeView((ImageView) object);
}
  }

我想在第二类的这个方法中使用第一类的位置值:

    public Object instantiateItem(ViewGroup container, int position) {
    ImageView imageView = new ImageView(context);
    int padding = context.getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin);
    imageView.setPadding(padding, padding, padding, padding);
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);


    imageView.setImageResource(GalImages[position]);
    ((ViewPager) container).addView(imageView, 0);
    return imageView;
}

请告诉我如何传递价值。我故意尝试但没有工作。

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你只需要发送一次int。意思是,如果你改变了

SlideImage(Context context) {
    this.context = context;
}

private int position;
SlideImage(Context context, int position) {
    this.context = context;
    this.position = position;
}

只是让你的函数加载位置变量,它应该可以工作。

抱歉,如果我误会了;我从来没有专门使用过PagerAdapter,但我使用过其他适配器,这对于发送数据非常有用。