2012-05-29 22 views
1

我在活动中有一个ExpandableListView。该代码是:在适配器如何设置ExpandableListView的子文本颜色

final ExpandableListView expandableListView = (ExpandableListView)findViewById(R.id.expandableListView1); 
    expandableListView.setDivider(null); 
    expandableListView.setCacheColorHint(0); 
    expandableListView.setGroupIndicator(null); 
    final EEInterviewExpandableListAdapter adapter = new EEInterviewExpandableListAdapter(this); 
    expandableListView.setAdapter(adapter); 

及相关代码:

public View getChildView(int groupPosition, int childPosition, 
     boolean isLastChild, View convertView, ViewGroup parent) { 
    String string = pageArray.get(groupPosition).get(childPosition); 
    boolean highlight=false; 
    return getChildGenericView(string,highlight);  
} 
public TextView getChildGenericView(String string,boolean highlight)  
{  
    // Layout parameters for the ExpandableListView  
    AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams( 
      ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
    TextView text = new TextView(activity);  
    text.setLayoutParams(layoutParams);  
    // Center the text vertically  
    text.setGravity(Gravity.CENTER | Gravity.LEFT);  
    // Set the text starting position  
    text.setPadding(0, 2, 0, 2);  
    text.setText(string.trim());  
    text.setBackgroundResource(R.drawable.childsep); 
    if(highlight) 
     text.setTextColor(R.color.expchdhighlightcolor); 
    else 
     text.setTextColor(R.color.expchdcolor); 
    text.setTextSize(EEEnv.EEfontSize); 
    return text;  
}  

我的问题是settextcolor()不起作用。我在网上搜索。据说expandableListView.setCacheColorHint(0);可以解决它。但问题仍然存在。任何人都知道这个问题?

回答

0

您需要访问特定的XML资源是这样的:当您运行此

text.setTextColor(getResources().getColor(R.color.expchdhighlightcolor)); 

否则要传递的唯一ID引用资源...请注意区别:

Log.v("Test", "Not what I expected: " + R.color.expchdhighlightcolor); 
Log.v("Test", "The hex value in decimal: " + getResources().getColor(R.color.expchdhighlightcolor)); 
+0

山姆, 谢谢。我会尝试。 – David

+0

它的工作原理!非常感谢。 – David