java - setMultiChoiceItems 和我的数组

标签 java android arrays android-alertdialog

在我的代码中,我可以选择复选框项目并将其设置在我的数组中:

protected ArrayList<Integer> selectedStatusId = new ArrayList<>();

但是当我选择相同的复选框项目时,需要从我的数组中删除它......我不会这样做,因为我的数组中的 id 与我的 mStatuses 不同。 如何删除我想要的项目?

也许我可以在点击肯定按钮后获取所有选定的项目吗?

        final ArrayList<String> statusesTitles = new ArrayList<>();
        for (int i = 0; i < mStatuses.size(); i++) {
            statusesTitles.add(mStatuses.get(i).StatusTitle);
        }
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle(R.string.order_dialog_status_title)
                .setMultiChoiceItems(statusesTitles.toArray(new String[statusesTitles.size()]), null, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                        if (b){
                            selectedStatusId.add(mStatuses.get(i).StatusId);
                        } else {
                            // TODO How I can delete my position from array?
                        }
                    }
                })
                .setPositiveButton(R.string.order_dialog_status_positive_button, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        refreshContent();
                    }
                })
                .setNegativeButton(R.string.order_dialog_status_negative_button, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        dialogInterface.cancel();
                    }
                });
        builder.show();

最佳答案

您可以通过以下方法删除项目。

    ArrayList<Integer> selectedStatusId = new ArrayList<>();
    if (true){
        selectedStatusId.add(mStatuses.get(i).StatusId);
    } else {
        //  delete the first occurrence of the specified element from array
        selectedStatusId.remove(new Integer(mStatuses.get(i).StatusId));
    }

关于java - setMultiChoiceItems 和我的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40041241/

相关文章:

java - 从用户那里收集一个数组,打印最小的数字,最大的数字,计算平均值和中位数

java - Glassfish 中的部署错误 - PrimeFaces

java - WSO2 ESB 的用途是什么?

android - 动画第二次不起作用

android - 登录网站

c++ - Makefile 只重新编译更改的对象?

PHP 数组差异 - 由循环生成与逗号分隔字符串生成

java.lang.System.arraycopy( native 方法)卡住 CPU 核心

java - 在 Maven 中捆绑整个项目的最佳方式是什么?

android - Lollipop [微调器模式]中没有日历可视化的日期选择器对话框?