2011-12-22 9 views
1

カスタム配列アダプターで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); 

またはこのような:
あなたはこのようにそれを使用することができますどちらかあなたがそうのような値/ colors.xmlに設定された色/ my_value @から使用することができます

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

holder.item1.setTextColor(Color.green(R.color.colorWarning)); 
関連する問題