Android获取Dialog文本颜色

时间:2014-06-30 16:59:58

标签: android dialog textcolor

我有一个自定义DialogPreference:

public class MyDiagPreference extends DialogPreference {
    public MyDiagPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.setDialogLayoutResource(R.layout.my_diag_preference);
    }
}

这是my_diag_preference.xml:

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

    <TextView
        android:id="@+id/testTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Test TextView" />

</LinearLayout>

问题是在Android API 10中TextView的文本颜色是错误的。 文字颜色总是黑色。

屏幕截图:http://imgur.com/HDFOIJY

无论如何,在我的应用程序中,我使用AlertDialog(非自定义),文本颜色在不同的Android API之间正确更改。

所以, 有没有办法通过xml获取Dialog使用的文本的颜色,以便我可以使用该值来设置上面的EditText的colorText?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

最后我得到了一个解决方案。我找到了这个文件的答案: SDK /平台/机器人-10 /数据/ RES /值/的themes.xml

我将style="?android:attr/panelTextAppearance"添加到EditText。

因此上面的xml变为:

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

    <TextView
        android:id="@+id/testTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Test TextView"
        style="?android:attr/panelTextAppearance" />

</LinearLayout>

答案 1 :(得分:0)

TextView本身设置文字颜色,然后根据您的要求获取文字颜色。

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

        <TextView
            android:id="@+id/testTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#000000"
            android:text="Test TextView" />

    </LinearLayout>