我为AlertDialog创建了一个自定义布局,它运行正常, 但我的布局文本样式有问题。
这是我的alertDialog的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/namedialoglable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/profilename" />
<EditText
android:id="@+id/namedialoginput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/namedialoglable"
android:layout_marginTop="24dp"
android:ems="10"
android:selectAllOnFocus="true"
android:text="@string/defaultname" >
<requestFocus />
</EditText>
</RelativeLayout>
问题是默认AlertDialog中的文本是白色的,而在我的自定义对话框中是黑色的。我只想使用与其他AlertDialog相同的颜色。
怎么做?
修改 更清楚: 我想保留父文本颜色,而不是强制我的自定义对话框颜色为白色。我认为AlertDialog使用系统颜色,所以我的警报需要保持相同的颜色
答案 0 :(得分:0)
为什么不申请:
android:textColor="@android:color/white"
到文字颜色所需的Views
。
还要研究风格和主题,以实现你的目标:
http://developer.android.com/guide/topics/ui/themes.html#PlatformStyles
答案 1 :(得分:0)
好的,在我的情况下,我找到了另一个解决方案。 由于我需要在对话框中只有一条消息和一个输入文本,最好的解决方案是创建一个只包含EditText的布局,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/namedialoginput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="24dp"
android:ems="10"
android:selectAllOnFocus="true"
android:text="@string/defaultname" >
<requestFocus />
</EditText>
</RelativeLayout>
对于消息文本,使用构建器方法:setMessage:
builder.setView(content)
.setTitle("Profile Name")
.setMessage(R.string.profilename);
通过这种方式,我确信我保留了其他对话框格式。