您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Android中如何使用RecyclerView實現(xiàn)簡單購物車功能的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
具體內(nèi)容如下
我們知道在ListView中用setTag來解決Item的復(fù)用問題,但是RecyclerView中已經(jīng)幫我們封裝好了復(fù)用,如果在項目中出現(xiàn)了RecyclerView的復(fù)用性問題時我們又該如何解決.
先來看看效果圖:
圖片可能比較大也沒有動態(tài)圖片但效果是這樣的!幾天后就該有的都會有好了廢話不說,進(jìn)入正題
RecyclerView設(shè)置數(shù)據(jù)源時加入了if判斷,導(dǎo)致item重用時沒有進(jìn)入if判斷.繼續(xù)復(fù)用原來設(shè)置的UI屬性.簡單是說就是當(dāng)你滑動是你的是用的上一頁的子條目容器,RecyclerView默認(rèn)沒有設(shè)置選中數(shù)據(jù)的話是用上一頁條目的數(shù)據(jù).OK既然知道了問題的原因,那我們來裸代碼?.
具體操作:
// 定義一個全局變量 // public SparseBooleanArray booleanArray = new SparseBooleanArray(); //設(shè)置CheckBox的選中監(jiān)聽并給集合設(shè)置數(shù)據(jù) holder1.mCbx.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { booleanArray.put(i, isChecked); } }); //設(shè)置數(shù)據(jù) holder1.mCbx.setChecked(booleanArray.get(i));
購物車算錢:
購物車算錢這個就很簡單了,你不會什么也得會算錢?
直接上代碼:
//給CheckBox設(shè)置一個點擊事件并回調(diào)給界面的Activity holder1.mCbx.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mOnCBXOnClickListener != null) { mOnCBXOnClickListener.onClick(v, i); } } });
然后我們要注意的是double類型的數(shù)據(jù)會出現(xiàn)精度的問題,就比如算的好好的出現(xiàn)12.0000000002,等一系列長數(shù),所以為了解決這個問題我們這邊引入了DecimalFormat類.
// private double aggregateAmount; // DecimalFormat 類主要靠 # 和 0 兩種占位符號來指定數(shù)字長度。0 表示如果位數(shù)不足則以 0 填充,# 會把最后面的零默認(rèn)省略。 //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); } } });
感謝各位的閱讀!關(guān)于“Android中如何使用RecyclerView實現(xiàn)簡單購物車功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。