解決android中checkbox全部選擇的操作

來源:互聯網
上載者:User

 

 

存在的問題:                                                                                                   

     我們在操作“全部選擇”list中的元素,我們最常用的方法是,遍曆一下,然後把所有的checkbox都給選中,但是這有一個bug,就是,當選擇後,往下拉時候,下面的都沒被選中,再往上拉的時候,上面的又會被取消選擇。於是,找到一個新的解決辦法,給記下來,留著以後使用。

 

解決辦法                                                                                                           

      我們把選中的位置使用一個數組或者集合來記著當前選擇的狀態。

如果集合中包含這個item,那麼我們就讓他們的checkbox設定成選中狀態。

       我們使用set集合來做,因為set集合可以去重複。

舉個例子:

//一、建立一個set集合private HashSet<String> itemSelected=new HashSet<String>();//二、全部選擇的點擊事件public void onClick(View v) {        int id=v.getId();        switch (id) {        case R.id.bt_new_msg:            Intent intent = new Intent(ConversationActivity.this, NewMessageActivity.class);            startActivity(intent);            break;        case R.id.bt_all_selected:            //把選中的狀態加入到一個set集合            for(int i=0;i<adapter.getCount();i++){                Cursor cursor = (Cursor) adapter.getItem(i);                String idstr = cursor.getString(ID_COLUMN_INDEX);                itemSelected.add(idstr);            }            adapter.notifyDataSetChanged();            break;                    case R.id.bt_cancel_selected:                        break;        }            }三、在顯示模式的時候去判斷set集合中的元素,然後設定checkbox的選中狀態            //根據mode 模式設定checkbook            if(mode==DISPLAYMODE.edit){                                checkBox.setVisibility(View.VISIBLE);                                //checkbox是否選中的                if(itemSelected.contains(idstr)){                    //選中                    checkBox.setChecked(true);                }else{                    //不選中                    checkBox.setChecked(false);                }                            }else{                checkBox.setVisibility(View.GONE);            }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.