【问题标题】:Creating a simple multiselect listview in 2013在 2013 年创建一个简单的多选列表视图
【发布时间】:2013-08-17 07:36:02
【问题描述】:

因此,我想在我的应用中实现的功能之一是为首次使用的用户提供热门主题列表,并要求他们在首次打开应用时订阅 5 个或更多主题,以使首次体验更好一些。

但是,当我开始四处寻找这样一个示例时,我感到震惊和惊讶的是,Google 的天才们不仅没有实现一个简单的示例来实现这一目标,而且让其他所有人都很难做到这一点显然也是如此(我假设这是基于我从搜索中收到的糟糕结果)

自 2013 年起,有没有办法以简单的方式做到这一点?我只需要一个选定列表项位置的数组,我可以从那里处理它。

【问题讨论】:

  • 查看 ApiDemos,有多选列表视图的示例。
  • 是的,没有实现如何获得所述选择

标签: android listview checkbox multi-select


【解决方案1】:

这是我的实现!

adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_checked, list);
    listView.setAdapter(adapter);
    listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);

以及保存过程:

array = new SparseBooleanArray();
    array = listView.getCheckedItemPositions();

    if (array.size() == 0) {
        AlertDialog.Builder adb = new AlertDialog.Builder(
                ListViewCheckBoxed.this);
        adb.setMessage(getString(R.string.lesson_selection))
                .setCancelable(false)
                .setPositiveButton("OK", new AlertDialog.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                    }
                });
        adb.show();
    } else {
        departmentList = new ArrayList<String>();

        for (int i = 0; i < array.size(); i++) {
            if (array.valueAt(i)) {
                departmentList.add(listView.getAdapter()
                        .getItem(array.keyAt(i)).toString());
            }

        }

}

【讨论】:

    猜你喜欢
    • 2011-08-24
    • 2011-08-24
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多