2011-05-11 53 views
9

我創建了一個微調器,用戶可以從中選擇一個值。我可以改變的微調本身的文字顏色一樣顯示在這張照片:如何更改微調器中選擇列表的字體顏色?

enter image description here

不幸的是,當我按下微調的項目列表,被選中,被顯示,但這些上有一個白色的字體顏色白色背景,我只是沒有能夠改變這一點:enter image description here

我google了這個問題和其他人都遇到了同樣的問題。沒有任何修復建議爲我工作。 據我瞭解,我必須製作某種自定義列表,但是,我無法使其工作。有什麼建議麼?

我的代碼看起來像這樣(array_spinner是一個字符串數組):

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.row, array_spinner); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

而且我row.xml:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:textColor="#000000" 
    android:textSize="14dp" /> 

回答

16

試試這個(未經測試)。我基本上重現simple_spinner_dropdown_item.xml而是採用了黑色文本顏色:

  • 替換行
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.row, array_spinner); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.row, array_spinner); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 
  • 添加此文件中res/layout,叫spinner_dropdown_item.xml
<CheckedTextView 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="fill_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:textColor="#FF000000" 
/> 
+0

非常感謝!它工作得很好! 感謝您的非常有用和快速的答案:) – Casper 2011-05-11 15:43:54

6

簡潔明快

private OnItemSelectedListener your_spinner _name = new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, 
           long id) { 
     ((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE); 
    } 

    public void onNothingSelected(AdapterView<?> parent) { 
    } 
}; 
3

我有同樣的問題。我的回答並不是最正確的答案,但對於那些使用基本應用程序主題的人來說,這是一個非常快速的解決方案。

如果您正在創建使用

createfromResource() 

不要使用getApplicationContext()微調一個ArrayAdapter。代之以聲明Myclass.this。我的文本現在保持與基本應用程序主題相同。希望這會幫助別人。

+0

同樣的問題在這裏,TY – lucasjmatias 2015-04-05 18:43:11

相關問題