Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改AlertDialog中列表项的textcolor_Android_Coding Style_Themes_Android Alertdialog_Listpreference - Fatal编程技术网

Android 如何更改AlertDialog中列表项的textcolor

Android 如何更改AlertDialog中列表项的textcolor,android,coding-style,themes,android-alertdialog,listpreference,Android,Coding Style,Themes,Android Alertdialog,Listpreference,您好,我正在尝试更改ListPreference弹出窗口列表中项目的文本颜色。我花了一个多小时浏览了所有的样式名称,但找不到TextAppearance或任何与此特定文本相关的内容。谢谢你的帮助 我真的不知道哪种视图使用列表首选项,可能是类似文本视图。如果是这样,您可以使smth像: TextView textView; String myString; //.... SpannableString spanString=new SpannableString(myString); spanSt

您好,我正在尝试更改
ListPreference
弹出窗口列表中项目的文本颜色。我花了一个多小时浏览了所有的样式名称,但找不到
TextAppearance
或任何与此特定文本相关的内容。谢谢你的帮助

我真的不知道哪种
视图
使用
列表首选项
,可能是类似
文本视图
。如果是这样,您可以使smth像:

TextView textView;
String myString;
//....
SpannableString spanString=new SpannableString(myString);
spanString.setSpan(new ForegroundColorSpan(Color.RED), 0, myString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(spanString);

你不能也不应该
*首选项
使用
com.android.internal.R.styleable
中的样式,制造商可能会更改这些样式。使用默认屏幕的想法是,设备中的每个首选屏幕看起来都很相似


另一方面,您可以尝试使用
android:theme=“@android:style/theme.Dialog”
在应用程序的
AndroidManifest
中执行
活动
,然后放置一个
列表视图
,根据需要设置样式。

不,这不是答案,首先,您如何获得对
TextView
的引用?我正在寻找一种通过样式解决此问题的方法。谢谢。你知道ListPreference的风格是什么吗?我可以告诉你,我对对话框(背景)也有同样的问题,我发现有一个C'tor,其中包含一个主题作为int供我使用,这样我可以从原始对话框继承。主题和更改我自己的属性。不,这本质上是我的问题,要更改
AlertDialog
ListView
中的文本颜色,我需要覆盖哪种样式,因为您的问题与ListPreference有关,而我从未做过任何处理。。。我不确定这是否会帮助你。。。但是,对于AlertDialog中的ListView,我可以帮助您实现这一点。我没有将主题应用于首选项本身,而是应用于AlertDialog。主题在所有其他AlertDialog上看起来都很不错,但不幸的是,
ListPreference
也使用了一个
AlertDialog
,所以我现在的背景很暗,文本不可读。我可以为我的
PreferenceActivity
制作一个特殊的案例样式,它不会覆盖
AlertDialog
主题,但是如果它可以匹配应用程序的其余部分,那就太好了。如果你正在更改主题,只需创建一个主题为.Dialog样式的新活动,并在其中执行任何您想要的操作。Preference.DialogPreference是ListPreference父级的样式,没有ListPreference的直接样式。您可以覆盖主题中的特定样式并将其应用于所有活动,这不会影响所有AlertDialogs。@Macarse
ListPreference
不会使用我的主题。Dialog@codeScriber谢谢,我会研究一下,如果有效的话,您可能需要将其加入到答案中:决不允许在
列表首选项中使用Theme.Dialog
。我试图解释如何使用Theme.Dialog创建一个新的活动,并使它看起来像一个ListPreference。