2014-02-27 97 views
0

我正在開發一個Android應用程序。在我的應用程序中,我使用了一個listview。這是我正在使用的代碼Android ListView顏色

ListView listSearchResults = (ListView)findViewById(R.id.listViewSearchResults); 
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, searchResults); 
listSearchResults.setAdapter(arrayAdapter); 

「searchresults」是一個字符串數組。當我運行我的應用程序列表視圖文本出現在白色。我沒有改變任何東西,我在另一個視圖中使用相同的代碼,它顯示爲黑色。爲什麼它會自動改變顏色?是否有一個原因?

+0

使用''Activity' Context'。 – Luksprog

+0

也許其中一個父視圖對它們有特定的樣式來改變顏色或具有整個其他主題。 – DroidBender

+0

你確定你要使用'android.R.layout.simple_spinner_item'嗎? – njzk2

回答

2

我建議你通過this tutorial on Context

閱讀與應用程序上下文佈局通脹,它說:

這是合法的,但通貨膨脹將使用默認的主題來完成系統上你正在運行,而不是您的應用程序中定義的內容。

我懷疑這是導致它看起來有些不同。相反,請嘗試使用適配器的活動上下文。

+0

我遇到的問題是我在回調函數中使用了這個代碼塊,所以我不能在上下文中使用「this」關鍵字,這就是我使用getApplicationContext()的原因。但現在我改變它getBaseContext()現在它的工作正常。感謝您的回答。乾杯!! –

0

檢查Mainfest父母雙方的xml文件中的theme,你會發現它們是不同的。例如:

<... android:theme="@android:style/Theme.Black"> 

另一種方式來解決這個問題是迫使從您的樣品simple_spinner_item的XML的顏色如下:

android:textColor="#ffffff" 
0

如果您收到黑屏,而滾動ListView中比添加上ListView的標籤的屬性:

機器人:cacheColorHint = 「@機器人:彩色/透明」 或機器人:cacheColorHint = 「#00000000」

有關詳情,請this blog