如何在android中的工具栏上设置微调器时更改微调器文本颜色?

时间:2016-06-10 04:34:50

标签: android spinner

说明:            我在我的activity中的工具栏上有微调器小部件。它是从onCreateOptionMenu()方法的menu.xml中添加的。我将数据设置到微调器中。如何从menu.xml文件设置微调器时更改微调器文本颜色在android?

这是我的menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/spinner"
        android:title="@string/spinner"
        app:actionViewClass="android.widget.Spinner"
        app:showAsAction="always" />

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never" />

</menu>

这是我的MainActivity.java,而我得到了menu.xml项目

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    MenuItem item=menu.findItem(R.id.spinner);

    Spinner spinner_month=(Spinner) MenuItemCompat.getActionView(item);

    adapter_month=new SpinnerAdapter(getApplicationContext(),android.R.layout.simple_spinner_item ,months_list);
    spinner_month.setAdapter(adapter_month);
    return true;
}

如何更改微调器文本的颜色?默认颜色为黑色。

请帮我解决这个问题。

4 个答案:

答案 0 :(得分:4)

<强> 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);

您无需设置下拉资源。只需要使用spinner_item.xml在spinner中显示您的项目。

答案 1 :(得分:0)

您可以为ID为my_spinner_item的微调器项目定义自己的布局:

<?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"
    />

然后像这样创建微调器对象:

adapter_month=newSpinnerAdapter(getApplicationContext(),
    android.R.layout.my_spinner_item ,months_list);

在您的资源xml罚款my_spinner_item.xml中,您现在可以使用android:textColor

定义微调器中显示的文本的颜色

答案 2 :(得分:0)

使用指定textcolor&amp;创建你layout使用您自己的布局而不是android.R.layout.simple_spinner_item

答案 3 :(得分:0)

查看我的示例和更改微调框弹出背景使用此

&#34;机器人:popupBackground =&#34; @android:颜色/ holo_green_dark&#34;

custom_toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar      xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar_top"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    android:minHeight="?attr/actionBarSize">

     <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:popupBackground="@android:color/holo_green_dark" />

</android.support.v7.widget.Toolbar>

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:gravity="left"
    android:padding="5dip"
    android:textColor="@color/colorPrimary"
    android:textSize="20sp" />

MainActivity.java

public class MainActivity extends AppCompatActivity {

     private Spinner spinner;
     String[] list=new String[]{"Android","iPhone","Windows"};
     private  ArrayAdapter<String> adapter;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

     spinner = (Spinner) findViewById(R.id.spinner);

    // change spinner item layout.
    adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list);
        spinner.setAdapter(adapter);

   }
}

输出 custom toolbar with custom spinner