<转>Android ListView中如何使得不用的行字体显示不同的颜色

来源:互联网 发布:台湾ptt大陆网络新词汇 编辑:程序博客网 时间:2024/05/22 14:05

本文转载于gaomingjun的博客   http://gaomingjun.javaeye.com/blog/808773 ,转载注明出处

ListView形成的每一步是在Adapter中进行的,我们要是不用的行的字体颜色不一样或者背景不一样,我们只要在adpter的getItemView中修改我们的代码就行了。

        以前通常的做法是:

  1. 1,看convertView是不是为null,如果为null,我们将新建一个view,为其制定布局文件;如果不为null,我们将convertView.getTag()赋给该view.
  2. 2,设定该view的内容。

ChildItemView childItemView = null;

if (convertView == null) {
   
    LayoutInflater mInflater_ = LayoutInflater.from(mContext);
    //set the place for the child item view
    convertView = mInflater_.inflate(R.layout.expandablechildrenlayout, null);
   
    childItemView = new ChildItemView();
convertView.findViewById(R.id.expandable_children_text);
   
    childItemView.childtitle = (TextView) convertView.findViewById(R.id.expandable_child_title);
   
    convertView.setTag(childItemView);
} else {
    //get the child item
    childItemView = (ChildItemView) convertView.getTag();
}

 

现在我们的做法是不管convertView是不是为null,我们根据自己的需要为其设置布局文件,然后设定该view的内容。

 

if(itemChild.mRead.equals("0")){
                           
                LayoutInflater mInflater_ = LayoutInflater.from(mContext);
                //set the place for the child item view
                convertView = mInflater_.inflate(R.layout.expandablechildrenlayout, null);           
                childItemView = new ChildItemView();           
                childItemView.childtitle = (TextView) convertView.findViewById(R.id.expandable_child_title);
        }else{
           
            LayoutInflater mInflater_ = LayoutInflater.from(mContext);
            //set the place for the child item view
            convertView = mInflater_.inflate(R.layout.expandablechildrenlayoutbold, null);       
            childItemView = new ChildItemView();
            childItemView.childtitle = (TextView) convertView.findViewById(R.id.expandable_child_title);
        }

 

 

最后设定值

childItemView.childtitle.setText(inforText.toString());