2013-12-13 187 views
0

我想改變我的Listview的文本顏色。Android自定義ListView文本顏色

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_multiple_choice, stg1); 

我已經使用默認的XML調用數據列表,現在需要更改此列表視圖的文本顏色。我知道我可以使用其他自定義類,但有沒有其他方式可以通過僅使用此類來更改文本顏色。

我已經搜索了很多,並嘗試了很多其他解決方案,但每個人都建議使用自定義類,但我不想使用自定義類。

以下是我參考的鏈接。

How to change the list view text color?

Android: Change text color in ListView for singleChoice

how to change the color of the text of the default ListView in android?

Android ListView Text Color

Change ListView's textcolor

How to Change List View Text color

回答這麼多其他的鏈接,但每個人都建議使用自定義類,採取文本視圖和更改文本視圖的顏色,但我不想使用任何其他XML文件或任何自定義類。

即使我不知道這是可能的,所以請幫助我。提前致謝。

+0

你爲什麼不想使用自定義類嗎?它給你更多的靈活性..使用自定義類,這可以在幾行代碼中完成.. –

+0

我知道,但我從這個列表視圖中的數據庫加載數據,這是最簡單的方法來加載來自數據庫的數據與簡單的複選框與多個檢查。 – InnocentKiller

+0

這和自定義類沒有什麼區別..在加載數據庫和有多個複選框.. –

回答

3

步驟1):創建一個XML佈局文件custom_list_item_multiple_choice

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/listPreferredItemHeightSmall" 
    android:textAppearance="?android:attr/textAppearanceListItemSmall" 
    android:gravity="center_vertical" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:paddingStart="?android:attr/listPreferredItemPaddingStart" 
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" 
    android:textColor="#FF0000" 
/> 

其中,android:textColor="#FF0000"指定你的文本顏色。

步驟2):初始化適配器這樣的:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
R.layout.custom_list_item_multiple_choice, stg1); 

一切保持不變..一切都應該正常工作。

+0

非常感謝...如果我想根據位置更改文本,還有一個問題,那我該怎麼做。 – InnocentKiller

+0

然後你肯定需要一個擴展了'ArrayAdapter'的自定義類。你只需重寫'getView()'方法。就這樣。休息一切仍然是一樣的.. –

+0

感謝您的答案。但我不知道如何使用這個自定義類。你能舉個例子嗎? – InnocentKiller

0

嘗試

textView.setTextColor(Color.rgb(0,102, 51));在您的自定義適配器內部的TextView

,如果你沒有使用自定義適配器使用ArrayAdapter<Spanned>()使文本的自定義顏色。

+1

我沒有使用自定義適配器類。 – InnocentKiller

+0

將您的陣列適配器更改爲類型以製作顏色。 – Nambi

+0

你可以舉例說明如何將與Arrayadapter一起使用。 – InnocentKiller

0

這可能會幫助你...

ArrayList<String> arrayList = new ArrayList<String>(); 
    // add your String items to array list 
    ArrayList<Spanned> spannedList = new ArrayList<Spanned>(
      arrayList.size()); 
    for (int i = 0, N = arrayList.size(); i < N; i++) { 
     String s = arrayList.get(i); 
     String html = "<font color=\"#0000FF\">" + s + "</font>"; // blue color 
     Spanned spanned = Html.fromHtml(html); 
     spannedList.add(spanned); 
    } 
    ArrayAdapter<Spanned> adapter = new ArrayAdapter<Spanned>(
      this, android.R.layout.simple_list_item_1, spannedList); 

您可以設置文本使用顏色代碼的任何顏色。 (這裏我用藍色的0000FF)。對於多個顏色代碼見here

0

您可以使用

Html.fromHtml() 

使用此之前,您需要遍歷適配器值和存儲值一個跨越可變像

Spanned out=Html.fromHtml("here you can use html tags like font color ,heading tag etc");