Android ListView给每个Item显示不同颜色的字体

来源:互联网 发布:javascript入门适合看 编辑:程序博客网 时间:2024/05/18 01:20

今天做项目中,要求根据不同的内容,给listview里面的textview显示不同的颜色。 网上百度了一下,大多数是讲点击Item时,改变Item的背景颜色。 重写SimpleAdapter的getview方法即可。

公司要求项目保密,不能把完整代码贴出来。把大致方法贴出来,我懒得再整理了,有不明白的留言,我会尽自己所能给大家讲明白。


int lengh = mListTitle.length;for (int i = 0; i < lengh; i++) {Map<String, Object> item = new HashMap<String, Object>();item.put("image", R.drawable.ic_launcher);item.put("title", mListTitle[i]);item.put("text", mListStr[i]);mData.add(item);}

    public class setColorAdapter extends SimpleAdapter {        List<? extends Map<String, ?>> mdata;        public setColorAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from,                int[] to) {            super(context, data, resource, from, to);            this.mdata = data;        }@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {convertView = LinearLayout.inflate(getBaseContext(), R.layout.list_item, null);}//这个TextView是R.layout.list_item里面的,修改这个字体的颜色TextView textView = (TextView) convertView.findViewById(R.id.P_info);//获取每次进来时 mData里面存的值  若果相同则变颜色//根据Key值取出装入的数据,然后进行比较                         String ss=(String)mData.get(position).get("text");if(ss.equals("有告警")){textView.setTextColor(Color.rgb(255, 00, 00));}else if(ss.equals("已屏蔽")){textView.setTextColor(Color.rgb(255, 165, 00));}//Log.i("TAG", Integer.toString(position));//Log.i("TAG", (String) mData.get(position).get("text"));return super.getView(position, convertView, parent);}}


然后new出你继承的SimpleAdapter,把填写到ListView的setAdapter方法就可以了。


0 0
原创粉丝点击