如果未选中复选框,则会自动选中Android自定义列表视图

时间:2015-02-13 05:51:11

标签: android listview checkbox

我有一个菜单项,如果单击它,我需要先检查是否选中了复选框。如果没有,则显示祝酒消息。

这是我到目前为止所尝试的:

点击菜单项

 SparseBooleanArray checkedPositions = lv.getCheckedItemPositions();
            int size = checkedPositions.size();
            for (int i = 0 ; i < size ; i++) {
                // We get the key stored at the index 'i'
                int key = checkedPositions.keyAt(i);
                // We get the boolean value with the key
                Log.i ("SavedItems", "checkedPositions(" + key + ") = " + checkedPositions.get(key));
            }

            if(size < 1) {
                Toast.makeText(getActivity(), "No item selected", Toast.LENGTH_SHORT).show();
            } 

如果没有选中复选框,但是如果我选中并取消选中它,则不会触发Toast消息。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

要根据是否在ListView中选中任何项目来显示消息,请使用SparseBooleanArray.indexOfValue返回已检查项目的索引,否则返回-1

SparseBooleanArray checkedPositions = lv.getCheckedItemPositions();
int isItemChecked=checkedPositions.indexOfValue(true);

if(isItemChecked>0){
     Toast.makeText(getActivity(), "ItemChecked : " +isItemChecked +
         " Value :"+checkedPositions.get(isItemChecked), Toast.LENGTH_SHORT).show();
}else{
       Toast.makeText(getActivity(), "No item selected", Toast.LENGTH_SHORT).show();
}