我试图在列表视图中更改文本颜色,列表视图显示数据库中的条目。问题是它显示不可见的文本(或者它根本不显示任何内容。只有在此列表中分隔我的条目的行)但是在点击条目后它会显示这些条目的详细信息。在不尝试使用ViewBinder的情况下显示效果很好。
// map each name to a TextView
String[] from = new String[] { "event" };
int[] to = new int[] { R.id.countryTextView };
conAdapter = new SimpleCursorAdapter(Clock.this, R.layout.day_plan, null, from, to);
SimpleCursorAdapter.ViewBinder binder = new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex){
int getIndex = cursor.getColumnIndex("colour");
String empname = cursor.getString(getIndex);
tv = (TextView)findViewById(R.id.countryTextView);
tv.setTextColor(Color.WHITE);
if(empname.equals("Green"))
{
tv.setTextColor(Color.WHITE);
return true;
}
return false;
}
};
setListAdapter(conAdapter); // set adapter
((SimpleCursorAdapter) conAdapter).setViewBinder(binder);
如何更改它才能正常工作?
答案 0 :(得分:0)
您必须将文本添加到textview:
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex)
{
((TextView) view).setTextColor(Colors.RED);
((TextView) view).setText(cursor.getString(cursor.getColumnIndex("YOUR-COLUMN-NAME")));
return false;
}
答案 1 :(得分:0)
更改行
tv = (TextView)view.findViewById(R.id.countryTextView); // <-- add 'view.'
致电
conAdapter.setViewBinder(SimpleCursorAdapter.ViewBinder
)
setListAdapter(conAdapter); // set adapter