大佬教程收集整理的这篇文章主要介绍了Android:处理放置在RecyclerView内的ImageView的点击,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
像这样的东西:
我尝试了什么:
@Override public PaletteViewHolder onCreateViewHolder(ViewGroup parent,int viewTypE) { View itemView = LayoutInflater. from(parent.getContext()). inflate(R.layout.card_view,parent,falsE); return new PaletteViewHolder(itemView); } @Override public void onBindViewHolder(PaletteViewHolder holder,final int position) { Palette palette = palettes.get(position); holder.text1.setText(palette.getName()); holder.text2.setText(palette.getHexValue()); final Context context = holder.img.getContext(); PiCasso.with(context) .load(DaciaData.DaciaModele[position]) .placeholder(R.drawable.placeholder) .error(R.drawable.error) .resizeDimen(R.dimen.list_detail_image_size,R.dimen.list_detail_image_sizE) .centerInside() .tag(context) .into(holder.img); holder.img.setOnClickListener(new View.onClickListener() { @Override public void onClick(View view) { Bundle bundle = new Bundle(); //add data to your bundle bundle.puTint("id",position); //creatE intent Intent mainIntent = new Intent(context,Extra1.class); //add bundle to intent mainIntent.putExtras(bundlE); //start activity context.startActivity(mainIntent); } }); }
编辑
RecyclerItemClickListener:
public class RecyclerItemClickListener implements RecyclerView.onItemTouchListener { private OnItemClickListener mListener; public interface OnItemClickListener { void onItemClick(View view,int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context,OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context,new GestureDetector.SimpLeonGestureListener() { @Override public Boolean onSingleTapUp(MotionEvent E) { return true; } }); } @Override public void onrequestDisallowInterceptTouchEvent(Boolean disallowIntercept) { } @Override public Boolean onInterceptTouchEvent(RecyclerView view,MotionEvent E) { View childView = view.findChildViewUnder(e.getX(),e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(E)) { mlistener.onItemClick(childView,view.getChildPosition(childView)); return true; } return false; } @Override public void onTouchEvent(RecyclerView view,MotionEvent motionEvent) { } }@H_425_4@mainRecyclerView这是我定义RecyclerView和onItemTouchListener的地方:
@Override public void onViewCreated(View view,@Nullable Bundle savedInstanceStatE) { super.onViewCreated(view,savedInstanceStatE); RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerModels); linearlayoutmanager linearLM = new linearlayoutmanager(getActivity()); linearLm.setOrientation(linearlayoutmanager.VERTICAL); recyclerView.setLayoutManager(linearLM); recyclerView.addOnItemTouchListener( new RecyclerItemClickListener(getActivity(),new RecyclerItemClicklistener.onItemClickListener() { @Override public void onItemClick(View view,int position) { Bundle bundle = new Bundle(); bundle.puTint("id",position); Intent i = new Intent(getActivity(),MainViewPager.class); i.putExtras(bundlE); startActivity(i); } }) );
删除recyclerView.addOnItemTouchListener();将使用图像长按来解决问题,但我无法启动ViewPager,我想RecyclerItemClickListener有问题.
public class MyViewHolder extends RecyclerView.ViewHolder implements View.onClickListener { protected TextView textView; protected ImageView imageView; public ContactViewHolder(View v) { super(v); textView = (TextView) v.findViewById(R.id.t1); imageview = (ImageView) v.findViewById(R.id.img); textView.setOnClickListener(this); imageview.setOnClickListener(this); } @Override public void onClick(View v) { if (v.getId() == textView.getId()) { Toast.makeText(context,"TextView Clicked!",Toast.LENGTH_LONG).show(); } else if (v.getId() == imageView.getId()) { Toast.makeText(context,"ImageView Clicked!",Toast.LENGTH_LONG).show(); } }
以上是大佬教程为你收集整理的Android:处理放置在RecyclerView内的ImageView的点击全部内容,希望文章能够帮你解决Android:处理放置在RecyclerView内的ImageView的点击所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。