0

我使用的 multispinner 代码几乎可以在每个询问 multispinner 的主题中找到。

@Override
public boolean performClick() {
    if (MainActivity.getSharedInstance().mp != null)
        if (MainActivity.getSharedInstance().mp.isPlaying())
        {
            MainActivity.getSharedInstance().mp.stop();
            //MainActivity.getSharedInstance().mp.release();
        }
    AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
    builder.setMultiChoiceItems(
            items.toArray(new CharSequence[items.size()]), selected, new DialogInterface.OnMultiChoiceClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    if (which == 0)
                    {
                        if (isChecked == true)
                        {
                            selected[0] = true;
                            selected[1] = false;
                            selected[2] = false;
                            selected[3] = false;
                            selected[4] = false;
                            selected[5] = false;
                            selected[6] = false;
                            selected[7] = false;
                        }
                        else
                            selected[0] = false;
                    }
                    else
                    {
                        if (isChecked == true)
                        {
                            selected[which] = true;
                            selected[0] = false;
                        }
                        else
                            selected[which] = false;
                    }   
                }
            });
    builder.setPositiveButton(android.R.string.ok,
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
    builder.setOnCancelListener(this);
    builder.show();
    return true;
}

如果选中第一个复选框,我希望 multispinner 取消选中所有其他复选框,并在选中其他任何复选框时取消选中第一个复选框。

我上面的代码的结果是,当我在 multispinner 对话框中时,它不起作用,但是如果我选中第一个复选框并关闭然后重新打开 multispinner,那么其他复选框会更新并且我想要的未选中。

如何在不需要关闭然后重新打开 multispinner 对话框的情况下执行此操作?

谢谢你的帮助。

4

1 回答 1

1

对于遇到相同问题的每个人,都可以使用它来更新对话框:

((AlertDialog) dialog).getListView().setItemChecked(which, false);

于 2013-04-12T08:01:50.413 回答