2013-06-20 54 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