显示对话框警告后,应用失去焦点

问题描述

我正在处理一个对话框,一旦调用它,就不会再关注它了。 我正在使用xamarin应用程序。

Android.App.AlertDialog.Builder alertDialog = new Android.App.AlertDialog.Builder(this);
alertDialog.SetTitle("Special Notification Access");
alertDialog.SetMessage(
                    "You have no special app access permission for the Notifications!\n" +
                    "Please go to Settings -> Apps -> Special app access -> Notification access " +
                    "and give permission to this app."
);

alertDialog.SetPositiveButton("OK",(senderAlert,args) => {
    Android.Util.Log.Debug(TAG,"pressed OK");
});

alertDialog.SetNegativeButton("No","pressed No");
});

Dialog diag = alertDialog.Create();
                
diag.Show();

一旦我按了遥控器上的按钮(我正在使用Android TV,SDK 28进行操作),对话框似乎就被聚焦了,但是日志显示该应用失去了焦点,请参见此处:

09-10 13:37:24.974 12053 12053 W ViewRootImpl[MainActivity]: Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN,keyCode=KEYCODE_DPAD_CENTER,scanCode=353,MetaState=0,flags=0x8,repeatCount=0,eventTime=13590499,downTime=13590499,deviceid=6,source=0x301 }

此后,遥控器停止工作,按按钮则无任何操作。另外,一旦我打开设置(通过ADB命令)并返回到应用程序,对话框就成为焦点,一切正常。

我在网上找到了各种解决方案,包括

How to set focus to android alert dialog negative button?

其中使用以下代码

diag.getButton(AlertDialog.BUTTON_NEGATIVE).requestFocus();

方法不再退出

我也发现了这一点

alertDialog.setonShowListener(new DialogInterface.OnShowListener(){

        @Override
        public void onShow(DialogInterface dialog) {

            Button positive= alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
            positive.setFocusable(true);
            positive.setFocusableInTouchMode(true);
            positive.requestFocus();
        }
});

但同样,setonShowListener不再存在。

我该怎么办?

如果您需要更多信息,请告诉我。

谢谢您的时间。

编辑1:添加图片

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)