大佬教程收集整理的这篇文章主要介绍了android – 如何在单击后更改回收器视图中的特定图像,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.DataObjectHolder> { private static String LOG_TAG = "MyRecyclerViewAdapter"; private ArrayList<CRMbean> mDataset; private static MyClickListener myClickListener; static Context mContext; private List<String> mtList ; public MyRecyclerViewAdapter(List<String> filteredList,CRMactivity crMactivity) { mtList = filteredList; } public static class DataObjectHolder extends RecyclerView.ViewHolder implements View .onClickListener { public static ImageView testImage; TextView name; TextView regId; TextView roomNo; public DataObjectHolder(View itemView) { super(itemView); name = (TextView) itemView.findViewById(R.id.Name); regId = (TextView)itemView.findViewById(R.id.reg_id); roomNo = (TextView)itemView.findViewById(R.id.roomno); testImage = (ImageView)itemView.findViewById(R.id.logo); Log.i(LOG_TAG,"Adding Listener"); itemView.setOnClickListener(this); } @Override public void onClick(View v) { myClicklistener.onItemClick(getAdapterPosition(),v); } } public void setOnItemClickListener(MyClickListener myClickListener) { MyRecyclerViewAdapter.myClickListener = myClickListener; } public MyRecyclerViewAdapter(ArrayList<CRMbean> myDataset) { mDataset = myDataset; } @Override public MyRecyclerViewAdapter.DataObjectHolder onCreateViewHolder(ViewGroup parent,int viewTypE) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.card_view_row,parent,falsE); DataObjectHolder dataObjectHolder = new DataObjectHolder(view); return dataObjectHolder; } @Override public void onBindViewHolder(MyRecyclerViewAdapter.DataObjectHolder holder,int position) { holder.name.setText(mDataset.get(position).getName()); holder.regId.setText(mDataset.get(position).getRegId()); holder.roomNo.setText(mDataset.get(position).getRoomNo()); } public void addItem(CRMbean dataObj,int indeX) { mDataset.add(index,dataObj); notifyItemInserted(indeX); } public void deleteItem(int indeX) { mDataset.remove(indeX); notifyItemRemoved(indeX); } @Override public int getItemCount() { return mDataset.size(); } public interface MyClickListener { void onItemClick(int position,View v); }
}
以上是适用于recyclerview的adpater
((MyRecyclerViewAdapter) mAdapter).setOnItemClickListener (new MyRecyclerViewAdapter.MyClickListener() { @Override public void onItemClick(int position,View v) { Log.i(LOG_TAG," Clicked on Item " + position); MyRecyclerViewAdapter.DataObjectHolder.testImage.setImageresource(R.drawable.video_icon_fill); //geTinformation(position); } });
上面的代码适用于OnclickListener
class CRMbean{ public Boolean isImageChanged; public Boolean isImageChanged() { return isImageChanged; } public void setImageChanged(Boolean imageChanged) { isImageChanged = imageChanged; } }
在BindHolder上做它,
@Override public void onBindViewHolder(MyRecyclerViewAdapter.DataObjectHolder holder,int position) { holder.name.setText(mDataset.get(position).getName()); holder.regId.setText(mDataset.get(position).getRegId()); holder.roomNo.setText(mDataset.get(position).getRoomNo()); if(mDataset.get(position).isImageChanged()){ holder.testImage.setImageresource(R.drawable.video_icon_fill); }else{ holder.testImage.setImageresource("You Default Image"); } }
在Adapter上写这个方法
public void changeImage(int indeX) { mDataset.get(position).setImageChanged(true); notifyItemChanged(indeX) }
在项目上单击Recyleview
(MyRecyclerViewAdapter) mAdapter).setOnItemClickListener (new MyRecyclerViewAdapter.MyClickListener() { @Override public void onItemClick(int position," Clicked on Item " + position); MyRecyclerViewAdapter.changeImage(position); } });
以上是大佬教程为你收集整理的android – 如何在单击后更改回收器视图中的特定图像全部内容,希望文章能够帮你解决android – 如何在单击后更改回收器视图中的特定图像所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。