您可以在其上设置点击侦听器并将onItemClick的代码用于onclick。
public class AdHocDealsAdapter extends RecyclerView.Adapter<AdHocDealsAdapter.ViewHolder> {
private final ArrayList<AdHocDealsModel> adHocDealsModelArrayList;
View v;
FragmentActivity context;
private Bundle bundle;
com.nostra13.universalimageloader.core.ImageLoader imageLoader = com.nostra13.universalimageloader.core.ImageLoader.getInstance();
DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true)
.cacheOnDisc(true).resetViewBeforeLoading(true).
build();
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.deals_list_item, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
final AdHocDealsModel adHocDealsModel = adHocDealsModelArrayList.get(position);
holder.txt_c_title.setText(adHocDealsModel.name + "");
holder.txt_c_category.setText(adHocDealsModel.category + "");
holder.txt_c_vendor.setText(adHocDealsModel.vendor_name + "");
holder.txt_c_discount.setText(adHocDealsModel.volume_of_deal + "");
if (adHocDealsModel.like == AppDelegate.DISLIKE) {
holder.img_c_like_dislike.setSelected(false);
} else if (adHocDealsModel.like == AppDelegate.LIKE) {
holder.img_c_like_dislike.setSelected(true);
}
holder.img_c_like_dislike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (new Prefs(context).getUserdata() != null) {
if (holder.img_c_like_dislike.isSelected()) {
holder.img_c_like_dislike.setSelected(false);
} else {
holder.img_c_like_dislike.setSelected(true);
}
if (DealsActivity.onListItemClickListener != null) {
DealsActivity.onListItemClickListener.setOnListItemClickListener(Tags.LIKE_DISLIKE_CLICKED, position, holder.img_c_like_dislike.isSelected());
}
} else {
AppDelegate.showToast(context, " Please Login first.");
}
}
});
holder.img_loading1.setVisibility(View.VISIBLE);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
AnimationDrawable frameAnimation = (AnimationDrawable) holder. img_loading1.getDrawable();
frameAnimation.setCallback(holder.img_loading1);
frameAnimation.setVisible(true, true);
frameAnimation.start();
((Animatable) holder.img_loading1.getDrawable()).start();
}
});
imageLoader.loadImage(adHocDealsModel.image, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
holder.img_c_item_image.setImageBitmap(loadedImage);
holder.img_loading1.setVisibility(View.GONE);
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
holder.txt_c_viewdetail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, AdHocDealDetailActivity.class);
final Pair<View, String>[] pairs = TransitionHelper.createSafeTransitionParticipants(context, false, new Pair<>(holder.img_c_item_image, "square_blue_name_1"));
ActivityOptionsCompat transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(context, pairs);
intent.putExtra(Tags.deal_id, adHocDealsModel.id);
context.startActivity(intent, transitionActivityOptions.toBundle());
}
});
}
public AdHocDealsAdapter(FragmentActivity context, ArrayList<AdHocDealsModel> adHocDealsModelArrayList) {
this.context = context;
this.adHocDealsModelArrayList = adHocDealsModelArrayList;
// this. ds=ds;
}
@Override
public int getItemCount() {
return adHocDealsModelArrayList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
ImageView img_c_item_image, img_c_like_dislike;
TextView txt_c_title, txt_c_category, txt_c_vendor, txt_c_discount, txt_c_viewdetail;
android.widget.ImageView img_loading1;
public ViewHolder(View itemView) {
super(itemView);
img_c_item_image = (ImageView) itemView.findViewById(R.id.img_c_item_image);
img_loading1 = (android.widget.ImageView) itemView.findViewById(R.id.img_loading1);
img_c_like_dislike = (ImageView) itemView.findViewById(R.id.img_c_like_dislike);
txt_c_title = (TextView) itemView.findViewById(R.id.txt_c_title);
txt_c_category = (TextView) itemView.findViewById(R.id.txt_c_category);
txt_c_vendor = (TextView) itemView.findViewById(R.id.txt_c_vendor);
txt_c_discount = (TextView) itemView.findViewById(R.id.txt_c_discount);
txt_c_viewdetail = (TextView) itemView.findViewById(R.id.txt_c_viewdetail);
itemView.findViewById(R.id.ll_c_main).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
}
这是例如,你可以在onBindViewHolder
方法看到有我设置新的点击监听,并保存到共享偏好。
后尽可能多的代码,你可以,也许你正在试图做的一些记录。做清单项目的一个好方法是使用ViewHolder模式 –