91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中如何使用RecyclerView實現簡單購物車功能

發布時間:2022-02-13 19:15:01 來源:億速云 閱讀:415 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Android中如何使用RecyclerView實現簡單購物車功能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體內容如下

我們知道在ListView中用setTag來解決Item的復用問題,但是RecyclerView中已經幫我們封裝好了復用,如果在項目中出現了RecyclerView的復用性問題時我們又該如何解決.
先來看看效果圖:

Android中如何使用RecyclerView實現簡單購物車功能

圖片可能比較大也沒有動態圖片但效果是這樣的!幾天后就該有的都會有好了廢話不說,進入正題

復用錯誤分析:

RecyclerView設置數據源時加入了if判斷,導致item重用時沒有進入if判斷.繼續復用原來設置的UI屬性.簡單是說就是當你滑動是你的是用的上一頁的子條目容器,RecyclerView默認沒有設置選中數據的話是用上一頁條目的數據.OK既然知道了問題的原因,那我們來裸代碼?.

具體操作:

//  定義一個全局變量
// public SparseBooleanArray booleanArray = new SparseBooleanArray();
        //設置CheckBox的選中監聽并給集合設置數據
        holder1.mCbx.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                booleanArray.put(i, isChecked);

            }
        });
//設置數據
holder1.mCbx.setChecked(booleanArray.get(i));

購物車算錢:

購物車算錢這個就很簡單了,你不會什么也得會算錢?
直接上代碼:

//給CheckBox設置一個點擊事件并回調給界面的Activity
holder1.mCbx.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mOnCBXOnClickListener != null) {
                    mOnCBXOnClickListener.onClick(v, i);
                }
            }
        });

然后我們要注意的是double類型的數據會出現精度的問題,就比如算的好好的出現12.0000000002,等一系列長數,所以為了解決這個問題我們這邊引入了DecimalFormat類.

// private double  aggregateAmount;
 // DecimalFormat 類主要靠 # 和 0 兩種占位符號來指定數字長度。0 表示如果位數不足則以 0 填充,# 會把最后面的零默認省略。
        //DecimalFormat df = new DecimalFormat("0.000");
        final DecimalFormat decimalFormat = new DecimalFormat("#.##");
        mRlvAdapter.setCBXOnClickListener(new RlvAdapter.onCBXOnClickListener() {
            @Override
            public void onClick(View v, int i) {
                CheckBox cbx = v.findViewById(R.id.cbx);
                if (cbx.isChecked()) {

                    aggregateAmount+=mRlvAdapter.mlist.get(i).getBuySpeciTotalPrice();
                    String str = decimalFormat.format(aggregateAmount);
                    money.setText("合計金額:  "+str);
                } else {
                    aggregateAmount-=mRlvAdapter.mlist.get(i).getBuySpeciTotalPrice();

                    String sss = decimalFormat.format(aggregateAmount);
                    money.setText("合計金額:  "+sss);
                }
            }
        });

感謝各位的閱讀!關于“Android中如何使用RecyclerView實現簡單購物車功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平山县| 商南县| 石家庄市| 定日县| 霍林郭勒市| 鸡西市| 广德县| 南宫市| 镇安县| 桂阳县| 正蓝旗| 乡城县| 绍兴市| 甘泉县| 宁安市| 丰都县| 辽阳县| 鄱阳县| 绥阳县| 普兰县| 和田县| 合水县| 盘锦市| 肇州县| 福州市| 芜湖县| 赣榆县| 太和县| 长子县| 石家庄市| 锡林郭勒盟| 扶沟县| 新乡市| 江油市| 萍乡市| 浏阳市| 乌兰浩特市| 彰武县| 五华县| 策勒县| 普陀区|