我有一个ListView
其具有ArrayAdapter
从 一个字符串数组获取信息。我试图使用一个自定义适配器类,在那里我必须重写getView()
方法,其中我还使用ViewHolder
模式来实现我正在尝试完成的模式。然而,这是一场噩梦,因为许多观点重复了自己,或根本没有展示,而且所有的行都是混乱的。列表视图的定制
我现在用它的适配器实现ListView
的时间要短得多。 但是,我想完成的是ListView
的一些行将显示红色文本和其他白色文本。将以红色显示的文本具有子字符串“R2”。请记住,此文本存储在适配器也具有句柄的字符串数组中。那么,这是我的代码,但仍然无法显示在ListView
内部具有红色子字符串“R2”的文本。
ArrayAdapter<String> adapter new ArrayAdapter<String>(context,
android.R.layout.simple_list_item_1,main_instructions);
listview.setAdapter(adapter);
for(int k = 0 ; k < list_layout.getChildCount(); k++){
String s = main_instrutions[k];
if(s.contains("R2")){
TextView v = (TextView) listview.getChildAt(k);
s = s.replaceAll("R2","");
v.setTypeface(Typeface.DEFAULT_BOLD);
v.setTextColor(Color.RED);
v.setText(s);
adapter.notifyDataSetChanged();
listview.invalidate();
}
我想我有个好主意,但我无法改变这些特定的行 红色文本。如果任何人有建议,会很好。
感谢
尝试在适配器中执行此操作 – Athul
post ur adapter – Athul
您正在调用adapter.notifyDataSetChanged();在改变视图颜色后,你应该在Adapter类中做到这一点。 – Abhijeet