بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تعریف setOnClickListener بر روی Cardview در RecyclerView
سلام دوستان من میخوام روی کارد ویو در لیستم که ریسایکلر ویو هستش متد کلیک تعریف کنم
اما کار نمیکنه
و چون از کارد ویو استفاده کردم کار نمیکنه
منظورم اینه این روش بدون کارد ویو ازش نتیجه گرفتم
اینم کدم در اداپتر
public class MainCommoditiesCAA extends RecyclerView.Adapter<MainCommoditiesCAA.ViewHolder> {
private Context context;
private String TAG = "TAG";
private int position;
private boolean isSelectedAll;
private ArrayList<MainCommoditiesLC> list;
private ArrayList<String> allIds;
private MainCommoditiesCAA.OnItemClickListener mItemClickListener;
private MainCommoditiesCAA.OnItemLongClickListener mItemLongClickListener;
private MainCommoditiesLC card;
private Intent intent;
public MainCommoditiesCAA(Context context, ArrayList<MainCommoditiesLC> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public MainCommoditiesCAA.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recycler_card_main_commodities, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final MainCommoditiesCAA.ViewHolder holder, final int position) {
final MainCommoditiesLC card = list.get(position);
this.position = position;
holder.txvTitle.setText(card.getName());
String imageUrl = "http://spyonme.ir/comiran/api/uploads/" + card.getImage();
Glide.with(context).load(imageUrl).into(holder.imgTitle);
Typeface fontIranSans = Typeface.createFromAsset(context.getAssets(), "Font/iransans.ttf");
holder.txvTitle.setTypeface(fontIranSans);
holder.txvTitle.setBackgroundResource(R.drawable.recycler_card_text_shape);
GradientDrawable gradientDrawable = (GradientDrawable) holder.txvTitle.getBackground();
gradientDrawable.setColor(Color.parseColor(card.getColor()));
holder.txvTitle.setGravity(Gravity.CENTER);
holder.cardView.setPreventCornerOverlap(false);
setFadeAnimation(holder.itemView);
}
@Override
public int getItemCount() {
return list.size();
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
ViewGroup root;
TextView txvTitle;
ImageView imgTitle;
CardView cardView;
ViewHolder(@NonNull final View view) {
super(view);
root = (ViewGroup) view;
txvTitle = view.findViewById(R.id.txv_title_recycler_main_commodities);
imgTitle = view.findViewById(R.id.img_title_recycler_main_commodities);
cardView = view.findViewById(R.id.card_recycler_main_commodities);
cardView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
card = list.get(getAdapterPosition());
if (mItemClickListener != null) {
int adapterPosition = getAdapterPosition();
mItemClickListener.onItemClick(v, adapterPosition, card.getId(), list.get(adapterPosition));
}
}
public boolean onLongClick(View v) {
card = list.get(getAdapterPosition());
if (mItemLongClickListener != null) {
int adapterPosition = getAdapterPosition();
mItemLongClickListener.onItemLongClick(v, adapterPosition, card.getId(), list.get(adapterPosition));
}
return true;
}
}
public interface OnItemClickListener {
void onItemClick(View view, int position, String id, Object data);
}
public void setOnItemClickListener(final MainCommoditiesCAA.OnItemClickListener itemClickListener) {
this.mItemClickListener = itemClickListener;
}
public interface OnItemLongClickListener {
void onItemLongClick(View view, int position, String id, Object data);
}
public void setOnItemLongClickListener(final MainCommoditiesCAA.OnItemLongClickListener itemLongClickListener) {
this.mItemLongClickListener = itemLongClickListener;
}
private void setFadeAnimation(View view) {
AlphaAnimation anim = new AlphaAnimation(0.5f, 1.0f);
anim.setDuration(250);
view.startAnimation(anim);
}
}
و اینم کدم توی اکتیویتی
mainCommoditiesCAA.setOnItemClickListener(new MainCommoditiesCAA.OnItemClickListener() {
@Override
public void onItemClick(View view, int position, String id, Object data) {
Log.i(TAG, "Clicked");
}
});
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .