给一个TextView控件中的文字显示不同的颜色

来源:互联网 发布:手机游戏优化器在哪 编辑:程序博客网 时间:2024/05/21 11:23

今天在项目中有一个需求要在ListView控件中的同一个item中显示不同颜色的文字,效果如下:

要实现这个效果的关键在于从获取到的数据中得到输入框中的文本进行颜色的改变,代码:

public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
View view = null;
if(convertView == null) {
view = mInflater.inflate(R.layout.item_text, null);
holder = new ViewHolder();
holder.textName = (TextView) view.findViewById(R.id.tv_text);
view.setTag(holder);
}else {
view = convertView;
holder = (ViewHolder) view.getTag();
}
if(textList != null && textList.size() != 0) {
SpannableString ss = null;
if(textList.get(position).toString().contains(keyWord)) {
int index = textList.get(position).indexOf(keyWord);
int length = keyWord.length();
ss = new SpannableString(textList.get(position).toString());
//对选中的文字中的关键字进行颜色的改变
ss.setSpan(new ForegroundColorSpan(Color.BLUE), index, index + length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
holder.textName.setText(ss);
}


return view;
}

0 0
原创粉丝点击