二級(jí)購(gòu)物車邏輯全選蝴悉、反選、價(jià)格數(shù)量計(jì)算

packagecom.bwie.app.adapter;

importandroid.content.Context;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.BaseExpandableListAdapter;

importandroid.widget.Button;

importandroid.widget.CheckBox;

importandroid.widget.ImageView;

importandroid.widget.TextView;

importcom.bwie.app.R;

importcom.bwie.app.bean.Goods;

importcom.bwie.app.bean.Shopper;

importcom.squareup.picasso.Picasso;

importjava.util.List;

/**

* 1. 類的用途

* 2. @author 適配器

* 3. @date 2017/10/19 14:19

*/

public classCarAdapterextendsBaseExpandableListAdapter {

private Context context;//上下文

private List glist;//商家集合

private List> clist;//商品集合

private IListener? listener;//接口回調(diào)聲明

public CarAdapter(Context context, List glist, List> clist) {

this.context= context;

this.glist= glist;

this.clist= clist;

}

@Override

public intgetGroupCount() {

returnglist.size();

}

@Override

public intgetChildrenCount(intgroupPosition) {

returnclist.get(groupPosition).size();

}

@Override

publicObject getGroup(intgroupPosition) {

returnglist.get(groupPosition);

}

@Override

publicObject getChild(intgroupPosition,intchildPosition) {

returnclist.get(groupPosition).get(childPosition);

}

@Override

public longgetGroupId(intgroupPosition) {

returngroupPosition;

}

@Override

public longgetChildId(intgroupPosition,intchildPosition) {

returnchildPosition;

}

@Override

public booleanhasStableIds() {

return true;

}

@Override

publicView getGroupView(final intgroupPosition,booleanisExpanded, View convertView, ViewGroup parent) {

finalGHolder gHolder;

if(convertView==null){

gHolder=newGHolder();

convertView=View.inflate(context, R.layout.gitem,null);

gHolder.gcheck= (CheckBox) convertView.findViewById(R.id.gcheck);

gHolder.shopper= (TextView) convertView.findViewById(R.id.shoppername);

convertView.setTag(gHolder);

}else{

gHolder= (GHolder) convertView.getTag();

}

gHolder.gcheck.setChecked(glist.get(groupPosition).ischeck());

gHolder.shopper.setText(glist.get(groupPosition).getSellerName());

//二級(jí)控制一級(jí)

gHolder.gcheck.setOnClickListener(newView.OnClickListener() {

@Override

public voidonClick(View v) {

boolean checked =gHolder.gcheck.isChecked();

//一級(jí)控制二級(jí)

if(checked){

glist.get(groupPosition).setIscheck(true);

List goodses =clist.get(groupPosition);

for(int i=0;i<goodses.size();i++){

? goodses.get(i).setIscheck(true);

}

}else{

? glist.get(groupPosition).setIscheck(false);

List goodses =clist.get(groupPosition);

for(int i=0;i

goodses.get(i).setIscheck(false);

}

}

//一級(jí)控制全選

intnum=0;

for(inti=0;i

if(glist.get(i).ischeck()){

num++;

}

}

if(num==glist.size()){

listener.setCheck(true);

}else{

listener.setCheck(false);

}

notifyDataSetChanged();

js();

}

});

returnconvertView;

}

@Override

publicView getChildView(final intgroupPosition,final intchildPosition,booleanisLastChild, View convertView, ViewGroup parent) {

finalCHolder cHolder;

if(convertView==null){

cHolder=newCHolder();

convertView=View.inflate(context,R.layout.citem,null);

cHolder.ccheck= (CheckBox) convertView.findViewById(R.id.ccheck);

cHolder.name= (TextView) convertView.findViewById(R.id.tv_title);

cHolder.price= (TextView) convertView.findViewById(R.id.tv_price);

cHolder.num= (TextView) convertView.findViewById(R.id.num);

cHolder.imageView= (ImageView) convertView.findViewById(R.id.iv_pic);

cHolder.jia= (Button) convertView.findViewById(R.id.jia);

cHolder.jian= (Button) convertView.findViewById(R.id.jian);

convertView.setTag(cHolder);

}else{

cHolder= (CHolder) convertView.getTag();

}

cHolder.ccheck.setChecked(clist.get(groupPosition).get(childPosition).ischeck());

Picasso.with(context).load(clist.get(groupPosition).get(childPosition).getImage()).into(cHolder.imageView);

cHolder.name.setText(clist.get(groupPosition).get(childPosition).getTitle());

cHolder.price.setText(clist.get(groupPosition).get(childPosition).getPrice()+"");

cHolder.num.setText(clist.get(groupPosition).get(childPosition).getNum()+"");

cHolder.ccheck.setOnClickListener(newView.OnClickListener() {

@Override

public voidonClick(View v) {

booleanchecked =cHolder.ccheck.isChecked();

if(checked){

clist.get(groupPosition).get(childPosition).setIscheck(true);

}else{

clist.get(groupPosition).get(childPosition).setIscheck(false);

}

//二級(jí)全選躯喇,一級(jí)全選

intnum=0;

for(inti=0;i

if(clist.get(groupPosition).get(i).ischeck()){

num++;

}

}

if(num==clist.get(groupPosition).size()){

glist.get(groupPosition).setIscheck(true);

}else{

glist.get(groupPosition).setIscheck(false);

}

//二級(jí)控制全選

intn=0;

for(inti=0;i

if(glist.get(i).ischeck()){

n++;

}

}

if(n==glist.size()){

listener.setCheck(true);

}else{

listener.setCheck(false);

}

notifyDataSetChanged();

js();

}

});

returnconvertView;

}

@Override

public booleanisChildSelectable(intgroupPosition,intchildPosition) {

return true;

}

classGHolder{

CheckBoxgcheck;

TextViewshopper;

}

classCHolder{

CheckBoxccheck;

TextViewname,price,num;

ImageViewimageView;

Buttonjia,jian;

}

//計(jì)算價(jià)錢和數(shù)量

public voidjs(){

intnum=0;//數(shù)量

doubleprice=0;//價(jià)錢

for(inti=0;i

List list =clist.get(i);

for(intj=0;j

if(list.get(j).ischeck()){

num+=list.get(j).getNum();

price+=list.get(j).getPrice()*list.get(j).getNum();

}

}

listener.setNum(num);

listener.setPrice(price);

}

};

//接口回調(diào)

public interfaceIListener{

//設(shè)置價(jià)格

voidsetPrice(doubleprice);

//設(shè)置數(shù)量

voidsetNum(intnum);

//設(shè)置全選監(jiān)聽(tīng)

voidsetCheck(booleanischeck);

}

public voidsetListener(IListener listener) {

this.listener= listener;

}

}

//點(diǎn)擊全選所有商品選中

booleanchecked =both.isChecked();

if(checked){

for(inti=0;i

glist.get(i).setIscheck(true);

}

for(inti=0;i

List goodsList =clist.get(i);

for(intj=0;j

goodsList.get(j).setIscheck(true);

}

}

}else{

for(inti=0;i

glist.get(i).setIscheck(false);

}

for(inti=0;i

List goodsList =clist.get(i);

for(intj=0;j

goodsList.get(j).setIscheck(false);

}

}

}

js();

adapter.notifyDataSetChanged();

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辫封,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子廉丽,更是在濱河造成了極大的恐慌倦微,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件正压,死亡現(xiàn)場(chǎng)離奇詭異欣福,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)焦履,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門拓劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)雏逾,“玉大人,你說(shuō)我怎么就攤上這事郑临∑懿” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵厢洞,是天一觀的道長(zhǎng)仇让。 經(jīng)常有香客問(wèn)我,道長(zhǎng)躺翻,這世上最難降的妖魔是什么丧叽? 我笑而不...
    開(kāi)封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮公你,結(jié)果婚禮上踊淳,老公的妹妹穿的比我還像新娘。我一直安慰自己陕靠,他們只是感情好迂尝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著剪芥,像睡著了一般雹舀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粗俱,一...
    開(kāi)封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音虚吟,去河邊找鬼寸认。 笑死,一個(gè)胖子當(dāng)著我的面吹牛串慰,可吹牛的內(nèi)容都是我干的偏塞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼邦鲫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼灸叼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起庆捺,我...
    開(kāi)封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤古今,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后滔以,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體捉腥,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年你画,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抵碟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桃漾。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拟逮,靈堂內(nèi)的尸體忽然破棺而出撬统,到底是詐尸還是另有隱情,我是刑警寧澤敦迄,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布恋追,位于F島的核電站,受9級(jí)特大地震影響颅崩,放射性物質(zhì)發(fā)生泄漏几于。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一沿后、第九天 我趴在偏房一處隱蔽的房頂上張望沿彭。 院中可真熱鬧,春花似錦尖滚、人聲如沸喉刘。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)睦裳。三九已至,卻和暖如春撼唾,著一層夾襖步出監(jiān)牢的瞬間廉邑,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工倒谷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛛蒙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓渤愁,卻偏偏與公主長(zhǎng)得像牵祟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抖格,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容