0

私は multispinners について尋ねるほぼすべてのトピックにある 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;
}

最初のチェックボックスが選択された場合はマルチスピナーが他のすべてのチェックボックスをオフにし、他のものが選択された場合は最初のチェックボックスをオフにします。

上記の私のコードの結果は、マルチスピナーダイアログにいるときは機能しませんが、最初のチェックボックスをオンにして閉じてマルチスピナーを再度開くと、他のチェックボックスが更新され、必要に応じてオフになります。

マルチスピナーダイアログを閉じてから再度開く必要なく、どうすればこれを行うことができますか?

あなたの助けをありがとう。

4

1 に答える 1

1

同じ問題を抱えているすべての人に対して、これを使用してダイアログを更新します。

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

于 2013-04-12T08:01:50.413 に答える