ExpandableListView全選功能

expandlist

? ? ? ? ? ? ? ? .setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {

@Override

? ? ? ? ? ? ? ? ? ? public void onGroupExpand(int groupPosition) {

// 只展開一個(gè)

? ? ? ? ? ? ? ? ? ? ? ? for (int i =0, count =expandlist.getCount(); i < count; i++) {

if (groupPosition != i) {

expandlist.collapseGroup(i);

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

}

}

});

? ? ? ? expandlist

? ? ? ? ? ? ? ? .setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

@Override

? ? ? ? ? ? ? ? ? ? public boolean onChildClick(ExpandableListView parent,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? View v, int groupPosition, int childPosition,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? long id) {

PresetTerminalDataAdapter.ViewHolder viewHolder = (PresetTerminalDataAdapter.ViewHolder) v.getTag();

? ? ? ? ? ? ? ? ? ? ? ? if (viewHolder.child_check!=null){

viewHolder.child_check.toggle();

? ? ? ? ? ? ? ? ? ? ? ? }

if (viewHolder.child_check.isChecked()) {

isSelectedList.get(groupPosition).put(

childPosition, 3);

? ? ? ? ? ? ? ? ? ? ? ? }else {

isSelectedList.get(groupPosition).put(

childPosition, 1);

? ? ? ? ? ? ? ? ? ? ? ? }

getSelectCount();

? ? ? ? ? ? ? ? ? ? ? ? adapter.notifyDataSetChanged();

return false;

? ? ? ? ? ? ? ? ? ? }

});

? ? ? ? selectall.setOnClickListener(new View.OnClickListener() {

@Override

? ? ? ? ? ? public void onClick(View v) {

if (groups.length>0) {

for (int i =0; i

for (int k =0; k

//? ? ? ? ? ? ? ? ? ? ? ? for (int k = 0; k < groups[i].length(); k++) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? if (selectall.isChecked()){

isSelectedList.get(i).put(k,3);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? selectall.setButtonDrawable(R.drawable.zone_select_pressed);

? ? ? ? ? ? ? ? ? ? ? ? ? ? }else {

isSelectedList.get(i).put(k,1);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? selectall.setButtonDrawable(R.drawable.zone_select_normal);

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

}

}

}

getSelectCount();

? ? ? ? ? ? ? ? adapter.notifyDataSetChanged();

? ? ? ? ? ? }

});

? ? }

private void getSelectCount(){

int allcount=0;

? ? ? ? for (int i=0;i

allcount=allcount+childs[i].length;

? ? ? ? }

Log.d("aaa","allcount="+allcount);

? ? ? ? int selectcount=0;

? ? ? ? if (groups.length>0) {

for (int i =0; i

for (int k =0; k

////? ? ? ? ? ? ? ? ? ? ? ? for (int k = 0; k < groups[i].length(); k++) {

//

//? ? ? ? ? ? ? ? ? ? if (selectall.isChecked()){

//? ? ? ? ? ? ? ? ? ? ? ? isSelectedList.get(i).put(k,3);

//? ? ? ? ? ? ? ? ? ? ? ? selectall.setButtonDrawable(R.drawable.zone_select_pressed);

//? ? ? ? ? ? ? ? ? ? ? ? select_group=groups.length;

////? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select_group=0;

//? ? ? ? ? ? ? ? ? ? }else {

//? ? ? ? ? ? ? ? ? ? ? ? isSelectedList.get(i).put(k,1);

//? ? ? ? ? ? ? ? ? ? ? ? selectall.setButtonDrawable(R.drawable.zone_select_normal);

//? ? ? ? ? ? ? ? ? ? ? ? select_group=0;

//? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? if (isSelectedList.get(i).get(k)==3){

selectcount++;

? ? ? ? ? ? ? ? ? ? }

}

}

}

if ( selectcount==allcount){

selectall.setButtonDrawable(R.drawable.zone_select_pressed);

? ? ? ? ? ? selectall.setChecked(true);

? ? ? ? }else {

selectall.setButtonDrawable(R.drawable.zone_select_normal);

? ? ? ? ? ? selectall.setChecked(false);

? ? ? ? }

Log.d("aaa","selectcount="+selectcount);

? ? }


holder.group_check.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

int flag =0;

? ? if (holder.group_check.isChecked()){

flag =3;

? ? }else {

flag =1;

? ? }

for (int i =0, size =isSelectedList.get(groupPosition).size(); i < size; i++) {

isSelectedList.get(groupPosition).put(i, flag);

? ? }

notifyDataSetChanged();

? ? Log.d("aaa","allcount=" +expandlist.getChildCount());

? ? getSelectCount();

}

});


ExpandableListView.checkbox.setOnClickListener


holder.group_check.setOnClickListener(new View.OnClickListener() {

@Override

? ? public void onClick(View v) {

int flag =0;

? ? ? ? if (holder.group_check.isChecked()){

flag =3;

? ? ? ? }else {

flag =1;

? ? ? ? }

for (int i =0, size =isSelectedList.get(groupPosition).size(); i < size; i++) {

isSelectedList.get(groupPosition).put(i, flag);

? ? ? ? }

notifyDataSetChanged();

? ? ? ? Log.d("aaa","allcount=" +expandlist.getChildCount());

? ? ? ? getSelectCount();

? ? }


獲取選擇的數(shù)量

private void getSelectCount(){

int allcount=0;

for (int i=0;i

allcount=allcount+childs[i].length;

}

Log.d("aaa","allcount="+allcount);

int selectcount=0;

if (groups.length>0) {

for (int i =0; i

for (int k =0; k

if (isSelectedList.get(i).get(k)==3){

selectcount++;

? ? ? ? ? ? }

}

}

}

if ( selectcount==allcount){

selectall.setButtonDrawable(R.drawable.zone_select_pressed);

? ? selectall.setChecked(true);

}else {

selectall.setButtonDrawable(R.drawable.zone_select_normal);

? ? selectall.setChecked(false);

}

Log.d("aaa","selectcount="+selectcount);

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藏古,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翎朱,更是在濱河造成了極大的恐慌,老刑警劉巖后豫,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歧寺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡叽赊,警方通過查閱死者的電腦和手機(jī)妆绞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門顺呕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人括饶,你說我怎么就攤上這事株茶。” “怎么了图焰?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵启盛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我技羔,道長(zhǎng)僵闯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任藤滥,我火速辦了婚禮鳖粟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拙绊。我一直安慰自己向图,他們只是感情好泳秀,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著榄攀,像睡著了一般嗜傅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上檩赢,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天吕嘀,我揣著相機(jī)與錄音,去河邊找鬼漠畜。 笑死币他,一個(gè)胖子當(dāng)著我的面吹牛坞靶,可吹牛的內(nèi)容都是我干的憔狞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼彰阴,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瘾敢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起尿这,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤簇抵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后射众,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碟摆,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年叨橱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了典蜕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡罗洗,死狀恐怖愉舔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伙菜,我是刑警寧澤轩缤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站贩绕,受9級(jí)特大地震影響火的,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜淑倾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一馏鹤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踊淳,春花似錦假瞬、人聲如沸陕靠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剪芥。三九已至,卻和暖如春琴许,著一層夾襖步出監(jiān)牢的瞬間税肪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國打工榜田, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留益兄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓箭券,卻偏偏與公主長(zhǎng)得像净捅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辩块,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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