2013-09-30 60 views
1

也許這已經說了很多次了,我很抱歉,但是搜索所有的網絡並不會幫助我找到解決方案。 我必須從一個字符串數組中創建一個ListView,但是我想爲每一行更改文本的顏色,例如,如果字符串包含「黃色」字,文本的顏色將爲黃色。 我該如何設置一個這樣的東西?Android:基於字符串值改變ListView中的文本顏色

+0

「文本的顏色改變每一行「是否有可能在ListView中有多個彩色文本? – NormR

回答

0

與Java的最後一個版本,你可以對字符串值做switch敘述,所以在每種情況下

1

創建鍵顏色的字和值作爲整數一個HashMap的字符串和setBackgroundColor切換。

示例代碼:

HashMap<String, Integer> colorCode = new HashMap<String, Integer>(); 
    colorCode.put("Red", Color.parseColor("Red")); 
    // put all pre-defined color in map 

    tv.setTextColor(colorCode.get("your color word")); 
+0

可能不是最佳解決方案,但可能是一個解決方案。 – Swetank

1

您可以實現一個簡單的適配器這樣並用它來填補的ListView

public class MySimpleStringAdapter extends ArrayAdapter<String> { 


     public MySimpleStringAdapter (Context context, int textViewResourceId, List<String> objects) { 
      super(context, textViewResourceId, objects); 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
     String myString = getItem(position); 
      //check your string 
      //Change the color as you want 
      //((TextView)convertView).setTextColor(); 
     } 
    } 

在主類

MySimpleStringAdapter mySimpleNewAdapter = new MySimpleStringAdapter (context,textViewResourceId,stringList); 
listView.setAdapter(mySimpleNewAdapter); 
+0

謝謝你們,讓我們試試看看我能否得到一些結果;) – Mirko