Я создавал Recyclerview для своего приложения электронной коммерции, в котором после нажатия кнопки «Добавить в корзину» макет кнопки должен быть изменен на другой макет (некоторый макет, содержащий текст «Добавлено в корзину»). Я знаю, как это сделать, но когда я нажимаю кнопку «Добавить в корзину», макет меняется только тогда, когда я нажимаю на нее ДВА РАЗ. Пожалуйста, помогите.
Вот код, который я написал в Viewholder:
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView mproducttext;
public TextView mpricetext;
public ImageView mimageview;
public ImageView mcarticon;
boolean isincart=false;
public ViewHolder(final View itemView) {
super(itemView);
mproducttext = itemView.findViewById(R.id.productnametext);
mpricetext = itemView.findViewById(R.id.pricetext);
mimageview=itemView.findViewById(R.id.productimageview);
mcarticon=itemView.findViewById(R.id.addtocarticon);
mcarticon.setBackgroundResource(R.drawable.addtocarticon);
mcarticon.setOnClickListener(mTogglePlayButton);
mimageview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
ProductResult mProductResult= mArraylist.get(position);
String productname= mProductResult.getProductname();
String price=mProductResult.getPrice();
String imageurl=mProductResult.getImageurl();
Intent intent=new Intent(mcontext,Description.class);
intent.putExtra("productname",productname);
intent.putExtra("price",price);
intent.putExtra("imageurl",imageurl);
mcontext.startActivity(intent);
}
});
}
View.OnClickListener mTogglePlayButton = new View.OnClickListener(){
@Override
public void onClick(View v) {
if(isincart){
v.setBackgroundResource(R.drawable.addedtocarticon);
}else{
v.setBackgroundResource(R.drawable.addtocarticon);
}
isincart = !isincart; // reverse
}
};
}