2011-12-22 36 views
1

我試圖設置自定義arrayadapter中的TextView的顏色,但它沒有工作 - 我得到的是灰色文本而不是綠色。在自定義arrayadapter中設置textview顏色

我試圖在row.xml中設置默認的textview顏色,但它沒有任何效果。

public class ReadCustomAdapter extends ArrayAdapter<ReadModel>{ 

    public ReadCustomAdapter(Activity a, int textViewResourceId, ArrayList<ReadModel> entries) { 
     super(a, textViewResourceId, entries); 
     this.entries = entries; 
     this.activity = a; 
    } 

    public static class ViewHolder{ 
     public TextView item1; 
     public TextView item2; 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = convertView; 
     ViewHolder holder; 
     if (v == null) { 
      LayoutInflater vi = 
       (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.row, null); 
      holder = new ViewHolder(); 
      holder.item1 = (TextView) v.findViewById(android.R.id.text1); 
      holder.item2 = (TextView) v.findViewById(android.R.id.text2);    
      v.setTag(holder); 
     } 
     else 
      holder=(ViewHolder)v.getTag(); 

     final ReadModel custom = entries.get(position); 

     if (custom != null) { 
      holder.item1.setText(custom.getNick()); 
      holder.item2.setText(custom.getMsg()); 

      holder.item1.setTextColor(R.color.green); 

     } 
     return v; 
    } 

} 

color.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<color name="green">#00ff00</color> 
</resources> 

回答

2

setTextColor()期待的彩色整數(0xFF00FF00你的情況),但是你用這種顏色,它可以是任何數量的資源ID爲它供給。
您可以使用它像這樣:

holder.item1.setTextColor(0xFF00FF00); 

或像這樣:

holder.item1.setTextColor(getResources().getColor(R.color.green)); 
0

您可以從@色/ MY_VALUE的值設置使用/ colors.xml像這樣;

holder.item1.setTextColor(Color.green(R.color.colorWarning)); 
相關問題