如何在android中的View Pager上执行click事件

时间:2014-11-17 11:49:10

标签: android onclick android-viewpager

我需要在全屏显示图像,点击Android中的View Pager。     我试过这个。

view.myPager.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.e("VIEW PAGER", "VIEW PAGER");
                    Toast.makeText(activity, "ZOOM", Toast.LENGTH_SHORT).show();
                }
            });*

建议表示赞赏。 感谢

2 个答案:

答案 0 :(得分:2)

在instantiateItem()中的图像上设置监听器:

        @Override
        public Object instantiateItem(View collection, int position) {
            final LayoutInflater inflater = getLayoutInflater(); 
            View layout = inflater.inflate(R.layout.my_layout, null);
            final ImageView image = (ImageView)layout.findViewById(R.id.image_display);
            final int cPos = position;
            image.setOnClickListener(new OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    ImageView i = (ImageView)v;
                    if(cPos == 0)
                    {
                        //...
                    }
                    //...

                }
            });

            return layout;
        }

或者,您可以使用ImageView.setTag()方法来包含有关要启动的Activity的数据。 e.g。

if(position == 0) image.setTag("com.blah.android.SomeActivity");
if(position == 1) image.setTag("com.blah.android.AnotherActivity");
//...

上面的onClick()内部改为:

ImageView i = (ImageView)v;
String activityClassName = (String)i.getTag();   // Get the info we stored in the tag.
MyActivity.this.startActivity((new Intent()).setClassName(MyActivity.this, activityClassName));

请注意,此处您实际上并不需要强制转换为ImageView,因为getTag()View的方法。每个ImageView也不需要单独的OnClickListener。您可以创建一个OnClickListener的单个实例来抓取上面的标记数据,并启动相应的活动。在instantiateItem()内的每个ImageView上设置此OnClickListener。

P.S。如果您正在下载图像,我强烈建议您查看一些为Android编写的图像下载程序。例如 https://github.com/nostra13/Android-Universal-Image-Loader

答案 1 :(得分:1)

您无法点击ViewPager,因为ViewPager 管理用户界面,但没有自己的用户界面。

您需要向OnClickListener中的页面中的小部件添加适当的侦听器(例如,ViewPager),就像您没有应用程序的应用程序一样ViewPager