Android开发Recyclerview无法实现item点击跳转
本文介绍了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屋!
查看全文