0

このように定義された AlertDialog があります。

final CharSequence[] items = { "Red", "Green", "Blue", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten" };

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");

builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {

        // Set items uncheckable

        Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();

    }
});

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub

    }
});

AlertDialog alert = builder.create();
alert.show();

最初の質問

一部の項目をチェック不可にすることはできますか? さまざまなアイテムを表示していますが、ユーザーはアイテムが存在することを理解していますが、一部のアイテムはチェックできません。

2番目の質問

私の最初の質問を達成する方法があれば、そのチェックできない項目をグレー表示にすることは可能ですか?

ありがとう、

お気に入り

4

2 に答える 2

0

特定の子アイテムを選択してから無効にする必要があります。

ListView list = ((AlertDialog) dialog).getListView();
list.getChildAt(item).setEnabled(false);
于 2014-04-18T23:42:31.123 に答える
0

たぶん次のようなもの:

(AlertDialog)builder.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); 

別の方法は次のとおりです。

Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(false)

それが機能するかどうかを確認してください。また、これを後で確認してbuilder.create();くださいbefore alert.show()

編集:リスト項目については、チェック可能なオプションにアクセスできるgetListView()を使用できると思います。setEnabled(false)

于 2012-08-01T18:24:12.763 に答える