2013-06-20 48 views
2

创建自定义DialogPreference与此代码:定制DialogPreference与TextView的色彩/主题

import android.content.Context; 
import android.preference.DialogPreference; 
import android.util.AttributeSet; 

public class DialogPref extends DialogPreference { 

    public DialogPref(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     setDialogLayoutResource(R.layout.my_dialog); 
    } 
} 

而与此布局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:padding="10dip" 
     android:text="@string/dialog_text" /> 

</LinearLayout> 

当我编译这一点,证明我的合法的对话但此对话框上的TextView在黑色背景上为黑色。那么,如何使用Dialog主题更改TextView颜色,但不能在布局中手动更改? Thanx

+0

虽然我加入“'机器人:文字颜色=” @安卓颜色/白“'”到TextView的,但我认为这不是有效的办法。有人可以确认吗? – Trancer

+0

检查这个答案http://stackoverflow.com/a/31858497/1317086 - 它看起来像你的问题可以解决使用主题属性 – GregoryK

回答

0

您可以定义一个普通主题并将此主题设置为对话框,并将其传递给构造函数。

public DialogPref(Context context, AttributeSet attrs) { 
    super(context, attrs,R.style.DialogTheme); 

    setDialogLayoutResource(R.layout.my_layout); 
} 

如何定义主题:Android Styles and Themes - Tutorial