如何将焦点设置到 Android 警告对话框的消极按钮?

11

我编写了代码,使用requestFocus()将焦点设置到ALert对话框的否定按钮。但是按钮颜色不会更改。我可以手动为该按钮设置背景图像。但我需要直接从本机获取其中一个。如何使焦点集中在ALlert对话框中的第二个按钮上?

我将发送代码片段以便理解。

alertbox.show();
alertbox.getButton(AlertDialog.BUTTON_NEGATIVE).requestFocus();

我也尝试了

alertbox.show();
alertbox.getButton(AlertDialog.BUTTON_NEGATIVE).requestFocus(View.FOCUS_FORWARD)

请问有人能回答这个问题吗?

谢谢, 安卓开发者


你是否在对话框显示后运行requestFocus()函数?据我理解,如果你在对话框可见之前尝试聚焦按钮,它将不会产生任何效果。 - David
在显示警告对话框后,我才编写了上面的那行代码。 - ADIT
1个回答

21

只需将setOnShowListener()设置给AlertDialog,然后将焦点设置在负按钮上。

    alertDialog.setOnShowListener(new DialogInterface.OnShowListener(){

        @Override
        public void onShow(DialogInterface dialog) {

            Button negative = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
            negative.setFocusable(true);
            negative.setFocusableInTouchMode(true);
            negative.requestFocus();
        }
    });
    alertDialog.show();

无法在MaterialAlertDialogBuilder上找到 - Mostafa Imani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接