如何为视图寻呼机中的每个幻灯片设置onClickListeners



ImageAdapter

public class ImageAdapter extends PagerAdapter implements AdapterView.OnItemClickListener {
    Context context;
    private int[] GalImages = new int[] {//array storing all images used in the 'slideshow' in the main menu
            R.drawable.savedpageex,
            R.drawable.ic_cdi_icon,
            R.drawable.savedpageex,
            R.drawable.ic_cdi_icon
    };
    ImageAdapter(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.abc_panel_menu_list_width);
        imageView.setPadding(1, 1, 1, 1);
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        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);
    }
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        final int clickedImage = GalImages[position];
    }
}

在主活动中

ViewPager viewPager = (ViewPager)findViewById(R.id.viewpager);
ImageAdapter adapter = new ImageAdapter(this);
wrappedAdapter = new InfinitePagerAdapter(adapter);
viewPager.setAdapter(wrappedAdapter);
viewPager.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Toast.makeText(getApplicationContext(), "clicked", Toast.LENGTH_LONG).show();
    }
});

现在,图片显示并循环,我确实需要帮助让图片在设定的时间间隔内"滑动",但主要问题是为每个"页面"设置onClickListeners。有什么帮助/建议吗?

您可以在onClickListener中添加一个switch语句,如以下

switch(viewPager.getCurrentItem()){
    case 0:
       //stuff for first page
       break;
    case 1: 
       //stuff for second page
       break;
}

或者在视图寻呼机中添加一个状态来描述它显示的"页面"并且使用该信息在onClickListener 中执行不同的操作

最新更新