【问题标题】:Change text color to selected item on Android Spinner在 Android Spinner 上将文本颜色更改为所选项目
【发布时间】:2020-11-16 20:14:21
【问题描述】:

我有一个微调器,它的所有选项都是黑色的。 我想要的是将活动中显示的选定项目更改为白色,但不是在 dropDownView 中,它必须保持所有黑色,就在它显示为选定项目时,我希望它是白色的。

我的微调器:

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);

我的 xml:

<Spinner
  android:id="@+id/spinner"
  android:layout_width="match_parent"
  android:layout_height="34dp"
  android:layout_marginTop="30dp"
  android:background="@drawable/border_thicker" />

我知道spinner有这个方法

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
         // Your code here
     } 

     public void onNothingSelected(AdapterView<?> adapterView) {
         return;
     } 
}); 

但我真的不知道如何将它应用到我想要的东西上。 请帮忙!!

【问题讨论】:

    标签: java android android-studio android-spinner


    【解决方案1】:
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
           public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
         ((TextView)parent.getChildAt(0)).setTextColor(Color.parseColor("#FFFFFF")); 
            }   
    
          public void onNothingSelected(AdapterView<?> adapterView) {
           return;
           } 
     }); 
    

    【讨论】:

      【解决方案2】:

      使用带有白色文本颜色的简单 TextView 创建自定义布局,例如 spinner_item.xml

      <?xml version="1.0" encoding="utf-8"?>
      <TextView xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textColor="@android:color/white">
      </TextView>
      

      然后将微调器布局设置为新的自定义项:

      ArrayAdapter<Integer> adapter = new ArrayAdapter<>(this, R.layout.spinner_item, myList);
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      spinner.setAdapter(adapter);
      

      无需更改setOnItemSelectedListener中的任何内容

      【讨论】:

      • 这对我也有用!两种解决方案都很棒。谢谢你:D
      猜你喜欢
      • 2016-12-03
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多