0

2.3.3 上的警报对话框

在 Android 4 上这可以正常工作,但在 2.3.3 上,我在 OK 按钮顶部后得到(而不是完全深灰色背景)浅灰色水平条纹。有什么想法可能导致这种情况吗?谢谢!

private void showResult(final String message) {
   final Context context = this;

    Runnable run = new Runnable() {
        public void run() {
            AlertDialog.Builder builder = new AlertDialog.Builder(context);

            builder.setMessage(message)
                .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
            });
            builder.create().show();
        }
    };

    this.runOnUiThread(run);
}

我有:

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="15" />

并在 values/styles.xml

<resources>

<style name="AppTheme" parent="android:Theme.Light" />

</resources>
4

1 回答 1

2

我不确定您是在寻找所有东西的深灰色背景,还是只是为了保持一致性。

您是否尝试过更改主题AlertDialog.Builder?在 API11+ 中,您可以使用第二个构造函数,它接受一个整数参数来设置主题。也许将其设置回“传统”主题会使它在各个版本中看起来都一样?

public AlertDialog.Builder (Context context, int theme)

自:API 级别 11

使用此构建器及其创建的 AlertDialog 的上下文和主题的构造器。AlertDialog 使用的实际主题是私有实现,但是您可以在此处提供主题中的属性名称,从中获取对话框的样式(例如 alertDialogTheme 或常量之一AlertDialog.THEME_TRADITIONALAlertDialog.THEME_HOLO_DARKAlertDialog.THEME_HOLO_LIGHT.

如果这对您不起作用,您可以使用AlertDialog.Builder().setView(View)能够进一步指定对话框中每个项目的属性(因此您可以将Buttons 放入View您传递的内容中,并将按钮的背景设置为灰色) .

于 2012-08-17T20:39:06.903 回答