java - 将全选行添加到 ListView 中

标签 java android listview

这是我的CustomObdRowAdapter.java 我在顶部添加了一个“全选”行,当用户选择它时,应检查当前 listView 中的所有项目,但我应该如何在自定义行适配器中实现它?

private class ViewHolder{
    CheckBox name;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
    ViewHolder holder = null;
    LayoutInflater settingInflater = LayoutInflater.from(getContext());
    if (convertView == null) {
        convertView = settingInflater.inflate(R.layout.custom_row, parent, false);
        holder = new ViewHolder();
        holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1);
        convertView.setTag(holder);


}else{
            holder = (ViewHolder)convertView.getTag();
        }
        holder.name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CheckBox cb = (CheckBox) v;
                RowCheckbox rowCommandCheckbox = (RowCheckbox) cb.getTag();

                if (cb.getText() == ifAllSelectStr){
                    if (cb.isChecked()){          
                       // Select all items in this listView
                    }else{
                       // Unselect all items in this listView
                        }
                    }

最佳答案

// select all
for (int i = 0; i < adapter.getCount(); i++) {
    list.setItemChecked(i, true);
}

// unselect all
for (int i = 0; i < adapter.getCount(); i++) {
    list.setItemChecked(i, false);
}

您可能需要从适配器外部调用它

getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

关于java - 将全选行添加到 ListView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38750651/

相关文章:

安卓 ListView

java - 在具有相同密度的不同 Android 设备上不同的 throw (滑动)速度

java - 格式化 XML 文件 : Indentation

java - 为我的应用程序创建教程

java - 在给出 NullPointerException 的 android Assets 中打开文本文件

android - Activity 启动时显示软键盘

qt - QML:调整 ListView 页脚组件的大小以填充剩余空间

java - 我如何计算重复的单词?

java - Android:使用基本身份验证无法从 http get 请求中获取 xml

android - android中的 ListView 选择颜色