0

我正在使用以下代码更改应用程序主题:

MainActivity.java:

setTheme(R.style.AppBlackTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

样式.xml:

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

然后创建 AlertDialog:

    SimpleAdapter simpleAdapter=new SimpleAdapter(this, listItems, R.layout.templates_list_item, new String[] {"name","descr"}, new int[] {R.id.name,R.id.descr});
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setSingleChoiceItems(simpleAdapter, -1, new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //...
            }
        });
alert.show();

但在 Android 2.1 中,此 AlertDialog 以白色背景和白色文本显示。如何解决?

4

3 回答 3

1

请试试:setInverseBackgroundForced(true)

于 2013-02-26T20:42:11.897 回答
1

您正在使用默认的 Android 主题。这意味着操作系统将决定颜色。如果您自己设置颜色,则可能会妨碍标准主题。

尝试自定义或使用您自己定义的主题。有关详细信息,请参阅以下主题。

如何更改 AlertDialog 的主题

于 2013-02-26T20:43:35.740 回答
0

现在我这样做:

值/样式.xml:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="AppTheme" parent="android:Theme.Light">
        <item name="alert_text_color">@android:color/black</item>
    </style>
    <style name="AppBlackTheme" parent="android:Theme.Black">
        <item name="alert_text_color">@android:color/black</item>
    </style>
</resources>

值-v11/styles.xml:

<resources>
    <style name="AppTheme" parent="android:Theme.Holo.Light" >
        <item name="alert_text_color">@android:color/black</item>
    </style>
    <style name="AppBlackTheme" parent="android:Theme.Holo" >
        <item name="alert_text_color">@android:color/white</item>
    </style>
</resources>

值/attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="customAttrs">
        <attr name="alert_text_color" format="reference" />
    </declare-styleable>
</resources>

在布局中(templates_list_item):

<TextView
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="?attr/alert_text_color" />
于 2013-02-27T13:20:51.267 回答