【问题标题】:change spinner text color in java code/android?在 java 代码/android 中更改微调器文本颜色?
【发布时间】:2016-08-20 07:38:33
【问题描述】:

我有以下微调器 xml 代码:

  <Spinner
    android:id="@+id/spinnerMain"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:layout_weight="0.40"
    android:textColor="@color/black"
    android:background="@drawable/rounded_white_rectangle"/>

以及下面的java代码:

public void setMainCategories(String[] mainCategories) {

    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mainCategories);
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerMain.setAdapter(spinnerArrayAdapter);

}

@Override
public void setSubcategories(String[] subCategories) {
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, subCategories);
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerSub.setAdapter(spinnerArrayAdapter);

我不确定如何更改文本的 java 代码以更改颜色。

你有什么建议吗? 将不胜感激。

【问题讨论】:

  • 您要更改下拉菜单中文本的颜色还是选择的文本颜色?
  • 你需要实现一个自定义适配器
  • 我需要微调器中的每一个文本都是黑色的,主要类别是更粗的黑色。谢谢
  • 请看stackoverflow.com/a/12353253/6255373应该是你在搜索什么。

标签: java android text colors spinner


【解决方案1】:

您可以通过样式更改 Spinner 中下拉项的外观:

添加样式 XML 并使用内置的 Android 属性:

<style name="mystyle">
    <item name="android:spinnerDropDownItemStyle">@style/spinner_drop_item_style</item>
</style>
<style name="spinner_drop_item_style">
    <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:paddingLeft">8dp</item>
    <item name="android:gravity">center_vertical|start</item>
    <item name="android:orientation">vertical</item>
    <item name="android:background">@drawable/apptheme_list_selector</item>
</style>

根据您的用例,@Jhaman 提议的自定义视图可能是更简单的解决方案。

编辑:您还以某种方式将样式应用于您的视图或应用程序。 documentation 很好地解释了这一点,但总的来说,Style 系统和各种属性都没有很好地描述。

【讨论】:

    【解决方案2】:

    为您的微调器项目制作一个自定义 XML 文件。

    spinner_item.xml:

    为此文件中的文本提供您自定义的颜色和大小。

    <?xml version="1.0" encoding="utf-8"?>
    
    <TextView  
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:gravity="left"  
        android:textColor="#FF0000"         
        android:padding="5dip"
        />
    

    现在使用此文件显示您的微调器项目,例如:

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list);
    

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多