如何根据单击的列表项更改加载到ViewPager中的图像

时间:2012-06-07 15:50:44

标签: android android-listview android-viewpager

我在drawable文件夹中有多个图像,但我只想根据在之前的ListView活动中单击的项目加载某些图像。所以我想学习如何延迟加载图像而不是硬编码到我的xml文件中。我是一个新手,并试图从ios开发背景教自己的android。提前感谢您的帮助。
    私有类MyPagerAdapter扩展了PagerAdapter {

    public int getCount(){
        return 3;
    }

    public Object instantiateItem(View collection, int position){
        LayoutInflater inflater = (LayoutInflater)collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        ImageView iv1 = (ImageView) findViewById(R.id.imageView1);
        ImageView iv2 = (ImageView) findViewById(R.id.imageView2);
        ImageView iv3 = (ImageView) findViewById(R.id.imageView3);

        int resId = 0;
        switch(position){
        case 0:
            iv1.setImageResource(R.drawable.amersenna);
            resId = R.layout.left;
            break;
        case 1:
            iv2.setImageResource(R.drawable.amersenna);
            resId = R.layout.middle;
            break;
        case 2:
            iv3.setImageResource(R.drawable.amersenna);
            resId = R.layout.right;
            break;
        }

        View view = inflater.inflate(resId, null);

        ((ViewPager) collection).addView(view, 0);

        return view;
    }

    @Override
    public void destroyItem(View agr0, int agr1, Object agr2) {
        ((ViewPager) agr0).removeView((View)agr2);
    }

    @Override
    public boolean isViewFromObject(View agr0, Object agr1){
        return agr0 == ((View)agr1);
    }

    @Override 
    public Parcelable saveState(){
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用setTag(Object)课程中的getTag()View方法。将ArrayList对象添加到每个ImageView。因此,当单击特定的ImageView时,您可以使用'getTag()'获取附加的ArrayList对象。通过这种方式,您可以根据需要在单击特定列表项时加载不同的图像。