我正在申请一个主题:
<style name="myAlertTheme" parent="@android:style/AlertDialog">
<item name="android:textColor">#ff000000</item>
</style>
<style name="RadioButton" parent="@android:style/Widget.CompoundButton.RadioButton">
<item name="android:textColor">#ff000000</item>
</style>
<style name="HSDroidStyle" parent="android:Theme">
<item name="android:background">#ffd3d3d3</item>
<item name="android:textColor">#ff000000</item>
<item name="android:textSize">20dp</item>
<item name="android:radioButtonStyle">@style/RadioButton</item>
</style>
但是当我创建一个警报时,文本显示为白色而不是黑色。要创建我正在使用的警报:
AlertDialog alertDialog = new AlertDialog.Builder(
new ContextThemeWrapper(act, R.style.myAlertTheme)).create();
alertDialog.setTitle(title);
alertDialog.setMessage(msg);
alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (exitOnFailure) mainAct.finish();
return;
} });
alertDialog.show();
现在,如果我更改myAlertTheme中的大小,按钮中的“确定”会更改,但不会更改标题或文本。所以我猜测还有其他一些textColor属性可以解决这个问题。我尝试了大多数我能想到的,但都没有。
有什么想法吗?
答案 0 :(得分:1)
hooked82是对的。在Honeycomb之前,Android不支持AlertDialogs正确的文本样式。您可以将样式应用于AlertDialog,但它会忽略文本样式。
这是一个很好的答案,可以证明是一个很好的解决方案:How to change theme for AlertDialog
这是一篇非常实用的博客文章,它使用上面提出的解决方案来正确设置AlertDialog样式。
答案 1 :(得分:0)
AFAIK没有办法修改标题/消息文字颜色(如果我错了请纠正我)。因此,一种方法是为AlertDialog创建自定义视图,并执行以下操作:
LayoutInflater factory = LayoutInflater.from(this);
final View layout = factory.inflate(R.layout.alert_layout, null);
alertDialog.setView(layout);
答案 2 :(得分:0)
尝试使用以下声明声明AlertDialog
:
AlertDialog alertDialog = new AlertDialog(mContext, R.style.myAlertTheme);