具有CheckBox的ListView,“全部选中”复选框的功能与此相反

死池

我正在尝试使用带有全选按钮的复选框来实现一个列表视图。但是,当我选中所有复选框时,相反的情况发生,所有复选框都被取消选中,而当我取消选中所有复选框时,则选中了复选框。这是我的代码:

chkall = (CheckBox) findViewById(R.id.chkAll);
        //chkall.setChecked(false);
        /** Defining array adapter to store items for the listview **/
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, names);

        /** Setting the arrayadapter for this listview  **/
        getListView().setAdapter(adapter);                

        /** Defining checkbox click event listener **/
        OnClickListener clickListener = new OnClickListener() {         
            @Override
            public void onClick(View v) {
                CheckBox chk = (CheckBox) v;
                int itemCount = getListView().getCount();
                for(int i=0 ; i < itemCount ; i++){
                    getListView().setItemChecked(i, chk.isChecked());

                }



            }
        };      

        /** Defining click event listener for the listitem checkbox */
        OnItemClickListener itemClickListener = new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                int checkedItemCount = getCheckedItemCount();                               

                if(getListView().getCount()==checkedItemCount)
                    chkall.setChecked(false);
                else
                    chkall.setChecked(true);


            //      String attID =scoresDataBaseAdapter.getAttID(perd,mRowId);
                    //scoresDataBaseAdapter.insertAttScore(perd,mRowId,attID,Sname,idstud,score);
                //  Toast.makeText(getApplicationContext(), " "+arg0+" "+arg1+" "+arg2+" "+arg3, Toast.LENGTH_SHORT).show();



            }
        };      

        /** Getting reference to checkbox available in the main.xml layout */ 
        CheckBox chkAll =  ( CheckBox ) findViewById(R.id.chkAll);  

        /** Setting a click listener for the checkbox **/
        chkAll.setOnClickListener(clickListener);     

        /** Setting a click listener for the listitem checkbox **/
        getListView().setOnItemClickListener(itemClickListener);

    }

    /**
     * 
     * Returns the number of checked items
     */
    private int getCheckedItemCount(){
        int cnt = 0;
        SparseBooleanArray positions = getListView().getCheckedItemPositions();
        int itemCount = getListView().getCount();

        for(int i=0;i<itemCount;i++){
            if(positions.get(i))
                cnt++;
        }

        return cnt;
    }
帕特里克

您可以执行以下操作来撤消对setItemChecked函数的调用

getListView().setItemChecked(i, !chk.isChecked());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何实现Jquery复选框选中全部/取消选中带有复选框的所有功能?

来自分类Dev

取消选中“全部选中”复选框

来自分类Dev

ListView问题中具有最后位置的复选框会自动选中

来自分类Dev

ListView问题中具有最后位置的复选框会自动选中

来自分类Dev

选中全部选中时,选中所有复选框

来自分类Dev

取消选中复选框之一时,取消选中“全部选中”复选框

来自分类Dev

Javascript复选框取消选中所有作品,但不选中全部

来自分类Dev

jQuery取消选中具有name属性的复选框

来自分类Dev

jQuery取消选中具有name属性的复选框

来自分类Dev

选中多个具有相同ID的复选框

来自分类Dev

取消选中具有匹配ID的复选框

来自分类Dev

垫选中的样式复选框具有多个选项

来自分类Dev

自动选中/取消选中“全部”复选框

来自分类Dev

全部选中或取消选中多个复选框

来自分类Dev

如何使用复选框创建“全部选中/取消选中”?

来自分类Dev

在ListView UWP中选中复选框

来自分类Dev

显示或隐藏WebGrid的“全部选中”复选框上的按钮

来自分类Dev

复选框列表未将全部设置为选中

来自分类Dev

具有Viewholder和复选框状态保存的ListView

来自分类Dev

获取具有选中和未选中状态的所有复选框的列表

来自分类Dev

具有onclick功能的复选框的动态列表

来自分类Dev

Kendo Grid:“列标题”复选框“全部选中”,用于选中网格中所有页面的复选框

来自分类Dev

选中所有复选框

来自分类Dev

没有选中属性的复选框

来自分类Dev

选中所有复选框

来自分类Dev

显示所有选中的复选框

来自分类Dev

选中所有复选框

来自分类Dev

没有选中属性的复选框

来自分类Dev

选中所有复选框

Related 相关文章

热门标签

归档