从 String.xml 数组更改微调器文本颜色

Changing Spinner Text Color from String.xml array

我想将微调器文本颜色(实际上是白色)更改为黑色。

我直接从 string.xml 文件中将字符串数组插入微调器中:

<resources>
....
...
<string name="vil_prompt">Choisir une ville</string>

<string-array name="vil_arrays">
    <item><FONT COLOR="#006600">Nouakchott Nord -Dar Naim </FONT></item>
    <item>Nouakchott Est - Tevrag Zeina</item>
    <item>Nouakchott Sud - Araffat</item>
    <item>Nouadhibou</item>
    <item>Rosso</item>
    <item>Adel baghrou</item>
    <item>Boughé</item>
    <item>Kiffa</item>
    <item>Zouerate</item>
    <item>kaédi</item>
    <item>Boû Gadoûm</item>
    <item>Boutilimit</item>
    <item>Atar</item>
    <item>Bareina</item>
    <item>Hamoud</item>
    <item>Mal</item>
</string-array>
</resources> 

我找到了许多不同的解决方案,但在大多数情况下,这是因为他们通过 java 代码填充了微调器。我实际上没有在 java 文件中初始化微调器。

我找到了一个建议将 <FONT COLOR>...</FONT> 应用于字符串数组但没有任何改变的解决方案(我将代码应用于第一项,如您所见)

我有两个微调器,由于文本颜色和背景,您实际上看不到它们。

<Spinner
        android:id="@+id/spinner4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/spinner3"
        android:layout_marginTop="17dp"
        android:entries="@array/vil_arrays"
        android:prompt="@string/vil_prompt"
        android:textColor="#808080"
        />

如何解决? 谢谢

在您的 res/layout 文件夹中创建一个 custom_spinner_item.xml 文件,例如:

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:ellipsize="marquee"
    android:textColor="@android:color/black"
    style="?android:attr/spinnerDropDownItemStyle">
</TextView>

在您的 java 文件中填充您的 Spinner,例如:

ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(YourActivity.this, R.array.vil_arrays, R.layout.custom_spinner_item);