Android开发Recyclerview无法实现item点击跳转

查看:118
本文介绍了Android开发Recyclerview无法实现item点击跳转的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

所有的代码都已经写好,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);
                }
            }
        });

解决方案

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

这篇关于Android开发Recyclerview无法实现item点击跳转的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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