Linjiajia
2023-10-07 31b7700b976a46901f67c5d7a00281ca4745fc9f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.application.zhangshi_app_android.adapter;
 
import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
 
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.Observer;
 
import com.android.app_base.base.adapter.BaseRVAdapter;
import com.android.app_base.base.dialog.BaseDialog;
import com.android.app_base.base.dialog.UIDialog;
import com.android.app_base.utils.rxbus.MessageEvent;
import com.android.app_base.utils.rxbus.RxBus;
import com.application.zhangshi_app_android.R;
import com.application.zhangshi_app_android.bean.ConsumeRecordBean;
import com.application.zhangshi_app_android.databinding.ItemConsumeRecordBinding;
import com.application.zhangshi_app_android.ui.function.TourismDetailActivityViewModel;
 
import java.math.BigDecimal;
 
/**
 * @author Ljj
 * @date 2023.05.08. 19:49
 * @desc 消费记录适配器
 */
public class ConsumeRecordRvAdapter extends BaseRVAdapter<ConsumeRecordBean, ItemConsumeRecordBinding,BaseRVAdapter.BaseViewHolder<ItemConsumeRecordBinding>> {
    private TourismDetailActivityViewModel viewModel;
 
    public ConsumeRecordRvAdapter(Context context,TourismDetailActivityViewModel viewModel) {
        super(context);
        this.viewModel = viewModel;
    }
 
    @Override
    protected int getLayoutId() {
        return R.layout.item_consume_record;
    }
 
    @Override
    protected void onBind(BaseViewHolder<ItemConsumeRecordBinding> holder, int position) {
        ConsumeRecordBean item = getItem(position);
        holder.getBinding().setLifecycleOwner((LifecycleOwner) mContext);
        holder.getBinding().setBean(getItem(position));
        holder.getBinding().setViewModel(viewModel);
        holder.getBinding().ivDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new UIDialog.Builder(mContext)
                        .setTitle("您确定要删除该条消费记录吗")
                        .setContent("删除后将无法恢复")
                        .setConfirm("确定")
                        .setCancel("取消")
                        .setListener(new UIDialog.OnListener() {
                            @Override
                            public void onConfirm(BaseDialog dialog) {
                                removeItem(position);
                                RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_TOURISM_CONSUME_CHANGE));
                            }
                        })
                        .show();
            }
        });
        TextWatcher textWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
            }
 
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                BigDecimal decimal = BigDecimal.valueOf(item.getEat()+item.getStay()+item.getShopping()+item.getTraffic()+item.getEntrance());
                holder.getBinding().etTotalCost.setText(decimal.stripTrailingZeros().toPlainString());
                RxBus.getInstance().post(new MessageEvent(MessageEvent.EVENT_TOURISM_CONSUME_CHANGE));
            }
 
            @Override
            public void afterTextChanged(Editable s) {
 
            }
        };
        holder.getBinding().etEat.addTextChangedListener(textWatcher);
        holder.getBinding().etStay.addTextChangedListener(textWatcher);
        holder.getBinding().etShopping.addTextChangedListener(textWatcher);
        holder.getBinding().etTraffic.addTextChangedListener(textWatcher);
        holder.getBinding().etEntrance.addTextChangedListener(textWatcher);
    }
 
    @Override
    protected BaseViewHolder<ItemConsumeRecordBinding> getViewHolder(ItemConsumeRecordBinding itemBind, int viewType) {
        return new BaseViewHolder<>(itemBind);
    }
}