Android退出弹窗显示异常:未按图2样式显示而是全屏(附代码)
问题分析与解决方案
首先明确操作提示:按Exit键进入全屏。
针对你遇到的返回键弹出窗口样式异常的问题,核心原因是你在API 11+版本的AlertDialog.Builder构造中传错了参数——AlertDialog.BUTTON_NEUTRAL是用来定义按钮类型的常量,根本不是主题资源ID!系统无法识别这个错误的主题参数,就会 fallback 到异常的全屏样式(也就是你说的图neo那样)。
修正步骤:
- 如果你想使用系统默认的AlertDialog样式,API 11+版本直接用不带主题参数的
AlertDialog.Builder构造方法即可; - 如果你需要指定特定主题,可以用
AlertDialog类提供的官方主题常量,比如AlertDialog.THEME_DEVICE_DEFAULT_LIGHT、AlertDialog.THEME_HOLO_DARK等。
修正后的完整代码示例:
@Override public void onBackPressed(){ AlertDialog.Builder builder; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { builder = new AlertDialog.Builder(MainHomeActivity.this); } else { // 改用正确的主题常量,或者直接去掉主题参数使用默认样式 builder = new AlertDialog.Builder(MainHomeActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT); // 或者简化为:builder = new AlertDialog.Builder(MainHomeActivity.this); } builder.setTitle("Thank You"); builder.setMessage("Thank You For Using Our Application Please Give Us Your Suggestions..."); // 补充按钮逻辑与对话框显示代码(之前的代码遗漏了这部分) builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); // 点击OK后退出当前页面 } }); builder.show(); }
另外补充:你原来的代码缺少了添加按钮和显示对话框的逻辑,补上之后才能正常弹出对话框哦。
内容的提问来源于stack exchange,提问作者Mohamed Mrzook
相关产品推荐
相关产品推荐

