0
好日子,我正在寫一個android程序的在線優惠券服務。我目前正在創建一個允許用戶爲該項目添加書籤的頁面。之後,他們可以在他們的書籤文件夾中看到它。我遇到的問題是在單擊書籤並選擇特定項目後。但是當我向上滾動選定的書籤變爲取消選擇狀態。我怎樣才能防止這種情況發生。下面是我的代碼如何保存按鈕狀態recyclerview
Coupon.java
public class Coupon {
private String company_name;
private String offer_desc;
public Coupon() {
}
public Coupon(String company_name, String offer_desc) {
this.company_name = company_name;
this.offer_desc = offer_desc;
}
public String getCompany_name() {
return company_name;
}
public void setCompany_name(String company_name) {
this.company_name = company_name;
}
public String getOffer_desc() {
return offer_desc;
}
public void setOffer_desc(String offer_desc) {
this.offer_desc = offer_desc;
}
}
CouponViewHolder.java
public class CouponViewHolder extends RecyclerView.ViewHolder{
protected TextView company_name;
protected TextView offer_desc;
protected LikeButton star_button;
protected LikeButton heart_button;
public CouponViewHolder(final View item){
super(item);
company_name = (TextView) item.findViewById(R.id.company_name);
offer_desc = (TextView) item.findViewById(R.id.offer_desc);
star_button = (LikeButton) item.findViewById(R.id.star_button);
heart_button = (LikeButton) item.findViewById(R.id.heart_button);
}
}
CouponAdapter.java
public class CouponAdapter extends RecyclerView.Adapter<CouponViewHolder>{
private List<Coupon> couponList;
public CouponAdapter(List<Coupon> couponList) {
this.couponList = couponList;
}
@Override
public CouponViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.fragment_one_card, parent, false);
CouponViewHolder vh = new CouponViewHolder(v);
return vh;
}
@Override
public long getItemId(int position) {
return super.getItemId(position);
}
@Override
public void onBindViewHolder(CouponViewHolder holder, int position) {
Coupon coupon = couponList.get(position);
holder.company_name.setText(coupon.getCompany_name());
holder.offer_desc.setText(coupon.getOffer_desc());
holder.heart_button.setLiked(false);
holder.star_button.setLiked(false);
holder.heart_button.setOnLikeListener(new OnLikeListener() {
@Override
public void liked(LikeButton likeButton) {
notifyDataSetChanged();
}
@Override
public void unLiked(LikeButton likeButton) {
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return couponList.size();
}
}
謝謝
您可以將按鈕的狀態存儲在您的本地內存,sqllite或sharedprefrences或者你可以把它在烏拉圭回合服務器DB – Arshad
您的優惠券使用布爾isSelected狀態,這將持有的每個用戶,每個優惠券的按鈕的狀態並在點擊按鈕的同時更改它。 –
你有任何示例代碼? – user10908