Android开发Recyclerview无法实现item点击跳转
巴扎黑
巴扎黑 2017-04-17 17:08:53
[Android讨论组]

所有的代码都已经写好,OnClick写在ViewHodler里面,在activity中调用setItemClickListener,但是运行时item无法点击且并无bug爆出。谢谢!

PS:OncreatViewHolder之前忘记贴出来了,然而还是不行。

 @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main,parent,false);
        MainViewHolder holder = new MainViewHolder(v,mItemClickListener);
        return holder;
    }
public interface ItemClickListener {
        void OnItemClick(View view,int position);
    }
 public void setItemClickListener(ItemClickListener mItemClickListener) {
        this.mItemClickListener = mItemClickListener;
    }
public class MainViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        private TextView mTextView;
        private ImageView mImageView;
        private ItemClickListener mItemClickListener;

        public MainViewHolder(View itemview,ItemClickListener itemClickListener) {
            super(itemview);
            mTextView = (TextView) itemview.findViewById(R.id.main_text_view);
            mImageView = (ImageView) itemview.findViewById(R.id.main_pic);
            itemview.setOnClickListener(this);
            this.mItemClickListener = itemClickListener;
        }


        @Override
        public void onClick(View v) {
            if (mItemClickListener != null) {
                Log.d("ss", "ff");
                mItemClickListener.OnItemClick(itemView,getAdapterPosition() );
            }

        }
    }
}

Activity

  mAdapter.setItemClickListener(new MainAdapter.ItemClickListener() {
            @Override
            public void OnItemClick(View view, int position) {
                switch (position){
                    case 1:
                        Log.d("ss","ff");
                    Intent intent = new Intent(MainActivity.this,NewsActivity.class);
                        startActivity(intent);
                }
            }
        });
巴扎黑
巴扎黑

全部回复(4)
黄舟

简单的如楼上所说的就能实现,但这样自然会消耗性能。推荐去学习下使用RecyclerView的addOnItemTouchListener,通过触摸来识别点击。

黄舟

你得在OncreateViewHolder里实现该接口并在Adapter里定义一个新接口再在activity里set进去,再调用该接口的回调

怪我咯
var a=12;
天蓬老师

itemtouchhelper

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号