android - 在微调器中,选择特定项目时背景不会改变

标签 android android-layout spinner android-spinner

我想在选择项目时更改我的微调器项目背景(不是微调器背景)。

我想要这样:

Image

最佳答案

首先在名为drawable的文件夹下创建一个drawable

my_click_changer

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/your_new_Color" android:state_pressed="true" />
    <item android:drawable="@color/your_default_Color" android:state_pressed="false" />
</selector>

EDIT 这是为了改变文本颜色

创建另一个drawable

text_color_changer

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:color="@android:color/black" android:state_checked="true" />
   <item android:color="@android:color/white" />
 </selector>

然后为每个 Spinner 项目创建一个单独的布局,

your_xml_name.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@android:id/text1"
   style="?android:attr/spinnerItemStyle"
   android:layout_width="match_parent"
   android:layout_height="40dp"
   android:background="@drawable/my_click_changer"
   android:ellipsize="marquee"
   android:gravity="center"
   android:padding="10dp"
   android:singleLine="true"
   android:textAlignment="inherit"
   android:textSize="15sp"
   android:textColor="@drawable/text_color_changer"
   android:textStyle="bold" />

And in the code create Adapter by

    final ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(getContext(), R.layout.your_xml_name, yourList);

关于android - 在微调器中,选择特定项目时背景不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38434307/

相关文章:

java - 不支持在线程中执行 MySQL 存储过程并获取可调用语句

android - 即使应用程序被用户从后台杀死,如何始终运行后台服务

java - 对分数(int)数组及其相应的名称(字符串)进行排序

android - ScrollView 在 android 中不显示 XML 的上半部分

android - 如何让 Spinner 像 Gmail 应用程序一样在抽屉导航内将项目显示为列表?

android - 如何在 android 中通知画廊新图像?

android - 工具栏不出现android

android - BottomNavigationView 在向上滚动而不是向下滚动时隐藏

android - 完全禁用 Spinner 并防止它在禁用时在 android 中显示它的项目

javascript - 如何向 Fancy Box Loader 添加文本