2011-12-22 39 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)); 
相关问题