我有一个自定义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的文本颜色是错误的。 文字颜色总是黑色。
无论如何,在我的应用程序中,我使用AlertDialog(非自定义),文本颜色在不同的Android API之间正确更改。
所以, 有没有办法通过xml获取Dialog使用的文本的颜色,以便我可以使用该值来设置上面的EditText的colorText?
感谢您的帮助
答案 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>