android - 如何以编程方式更改 Android 中 Spinner 的颜色?

标签 android

我能够使用以下代码行将颜色设置为微调器中的第一项。但是如何为用户选择的第一个项目以外的项目赋予颜色。

    List<String> spinnerArray =getContacts();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
        this,R.layout.spinner_effect, spinnerArray);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner contactSpinner = (Spinner) findViewById(R.id.SpinnerchooseContact);
    contactSpinner.setAdapter(adapter);

((TextView) contactSpinner.getChildAt(0)).setTextColor(Color.GRAY);

最佳答案

创建一个新的 xml 文件,命名为 dropdown.xml,在此布局中定义你的样式

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:ellipsize="marquee"
    android:textColor="#aa66cc"/>

然后为它设置你的适配器

adapter.setDropDownViewResource(R.dropdown);

关于android - 如何以编程方式更改 Android 中 Spinner 的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41418557/

相关文章:

android - 如何在不耗尽内存的情况下在 droid 中制作益智应用程序?

Android - 暗模式问题 : black text on dark background

java - getSharedPrefernces 仅在一个 Activity 中返回 null,而该 Activity 在另一个 Activity 中运行良好

android - Android 上的 QMediaPlayer

android - 以编程方式在滚动同一列表时修复列表中 View 的位置

android - 如何从 main.xml 中检索 TextView 文本

android - SQLite 的 Textview 的 setText 返回字符串

php - 如何使用 volley api 将 android 应用程序连接到本地服务器

android - oreo 中的文本颜色和元素颜色已更改

android - 将 html 表导入 Android 应用程序