ViewPager OnItemClickListener [英] ViewPager OnItemClickListener

查看:227
本文介绍了ViewPager OnItemClickListener的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的Viewpager,阅读后<一href="http://developer.android.com/reference/android/support/v4/view/ViewPager.html">http://developer.android.com/reference/android/support/v4/view/ViewPager.html从谷歌,我似乎无法找到任何关于 viewPager.setOnItemClickListener相关的(新OnItemClickListener(){难道我们还有其他的选择,作为单击的项目?

I'm new to Viewpager, and after reading http://developer.android.com/reference/android/support/v4/view/ViewPager.html from google, I can't seem to find anything related on viewPager.setOnItemClickListener(new OnItemClickListener() { Do we have other options to act as Item Clicked?

测试退出

viewPager.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Intent i = new Intent(MainActivity.this, SingleItemView.class);
                i.putExtra("flag", flag);
                i.putExtra("position", position);
                startActivity(i);
            }

        });

错误: 该方法setOnItemClickListener(新AdapterView.OnItemClickListener(){})是未定义的类型ViewPager

Error : The method setOnItemClickListener(new AdapterView.OnItemClickListener(){}) is undefined for the type ViewPager

推荐答案

没有为ViewPager没有OnItemClick回调方法。如果你想点击每个页面上的事件,那么你就必须建立自己的监听到你的适配器中的页面内容。

There is no OnItemClick callback method for ViewPager. If you want click events on each page then you'll have to build your listener into the page content within your Adapter.

是这样的:

@Override
public Object instantiateItem(View collection, final int pos) { //have to make final so we can see it inside of onClick()
    LayoutInflater inflater = (LayoutInflater) collection.getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    View page = inflater.inflate(R.layout.YOUR_PAGE, null);

    page.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            //this will log the page number that was click
            Log.i("TAG", "This page was clicked: " + pos);
        }
    });


    ((ViewPager) collection).addView(page, 0);
    return page;
}

正是你需要将取决于有点什么东西,你在做什么 instantiateItem()您还没有发布这样的里面,我不能给你一个更具体的答案。

exactly what you need will depend a bit on what else you are doing inside of instantiateItem() which you haven't posted so I can't give you a more specific answer.

这篇关于ViewPager OnItemClickListener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆