在微调器中更改所选项目的文本颜色

ami*_*788 34 android android-spinner

如何在微调器中更改所选项的字体颜色?

我可以更改所选项目的背景颜色,下拉项目的颜色等,但不能更改所选项目的文本颜色...我该怎么做?

我的代码是:这是我正在使用的微调器 - :

<Spinner
                android:id="@+id/spinner1"
                android:layout_width="wrap_content"
                android:layout_height="32dip"
                android:background="@drawable/mybg"
                android:divider="@drawable/list_divider"
                android:drawSelectorOnTop="true"
                android:popupBackground="#D3D5D3"
                android:prompt="@string/activityy_prompt" 
                />
Run Code Online (Sandbox Code Playgroud)

这是mybg.xml

<!-- <item android:drawable="@drawable/blue" android:state_pressed="false"/> -->
<!-- <item android:drawable="@drawable/back11"/> -->

<item android:drawable="@drawable/greenyellow1" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@drawable/greenyellow1" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/greenyellow1" android:state_focused="false" android:state_pressed="true"/>
<item android:drawable="@drawable/greenyellow1" android:state_selected="true"/>
<item android:drawable="@drawable/back11"/>
Run Code Online (Sandbox Code Playgroud)

使用这些我无法改变selecetd项目的文字颜色......

小智 64

定义OnItemSelectedListener如下:

  private AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            ((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    };
Run Code Online (Sandbox Code Playgroud)

然后设置OnItemSelectedListenerspinner这样:

spinner.setOnItemSelectedListener(listener);
Run Code Online (Sandbox Code Playgroud)


小智 15

绘制/ mybg:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true">
        <color android:color="@color/black" />
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

这将更改弹出窗口中的所选项目颜色.

  • 改变 android:drawable="@color/red" (2认同)

小智 15

尝试在OnItemSelectedListener中实现onItemSelected,以更改微调器选定项的文本颜色

public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
    int index = adapterView.getSelectedItemPosition();
    ((TextView) spinner.getSelectedView()).setTextColor(getResources().getColor(R.color.Blue)); //<----
Run Code Online (Sandbox Code Playgroud)


小智 13

您可以通过添加OnItemSelectedListener到更改选定的文本颜色spinner

qtySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        ((TextView) view).setTextColor(Color.BLACK); //Change selected text color
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
});
Run Code Online (Sandbox Code Playgroud)


Sha*_*wat 8

使用选择器作为文本颜色.

在drawable中创建color_selector.xml

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:color="#000000" /> <!-- pressed -->
     <item android:state_focused="true"
           android:color="#000000" /> <!-- focused -->
     <item android:color="#FFFFFF" /> <!-- default -->
 </selector>
Run Code Online (Sandbox Code Playgroud)

并在textview中

<TextView 
   android:textColor="@drawable/color_selector"/>
Run Code Online (Sandbox Code Playgroud)

  • 我使用它,当运行应用程序时,应用程序崩溃 (2认同)