2015-04-04 88 views
0
<Spinner 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/spinner_statements" 
      android:background="@drawable/file" 
      android:spinnerMode="dropdown" 
      android:visibility="gone" 
      android:layout_marginTop="15dp" 
      android:touchscreenBlocksFocus="false" /> 

我想知道是否有反正我可以指定某處,我希望這個微調內的項目的文本顏色應該是黑色的。如何設置我擁有的微調框的文本顏色?

java代碼;

final Spinner spinner= (Spinner)findViewById(R.id.spinner); 
    String[] items = new String[]{"one", "two"}; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items); 
    spinner.setAdapter(adapter); 

回答

2

創建一個名爲spinner_layout.xml 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="#FFFFF"   
     android:padding="5dip" 
/> 

此代碼並修改陣列適配器

ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,R.layout.spinner_layout, items); 
+0

它的工作,謝謝:) – 2015-04-04 14:11:47

+0

高興地幫助! :) – Aadi 2015-04-04 15:05:44

1

最簡單的方法是創建一個佈局文件,該文件的副本android.R.layout.simple_spinner_dropdown_item.xml和應用你想要的顏色。

讓我們說my_item.xml如下。

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
style="?android:attr/spinnerDropDownItemStyle" 
android:singleLine="true" 
android:layout_width="match_parent" 
android:layout_height="?android:attr/dropdownListPreferredItemHeight" 
android:textColor="@android:color/holo_purple" 
android:ellipsize="marquee"/> 

請參閱android:textColor添加的行。

你的java代碼現在改變如下。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_item, items); 

如果你想使不同顏色的每個項目或一些規則,你必須創建自定義AdapterBaseAdapter類繼承。

+0

我遇到了問題要跟隨你在說什麼,和索姆錯誤。不過謝謝你的回答,這很有幫助:) – 2015-04-04 14:12:17