如何区分android ListView中的已读和未读消息?

时间:2011-03-22 21:02:09

标签: android android-listview

我的代码中使用了

SimpleCursorAdapter。 游标包含字段read(true / false)。 如果是,则行应显示为灰色文本颜色,如果为false - 则为白色。

1 个答案:

答案 0 :(得分:1)

如果它与您编写的一样简单,您可以在SimpleCursorAdapter中使用setViewBinder / setViewValue。下面将显示行布局的TextView,如果光标中的列包含您感兴趣的某些值,则将其绘制为红色。如果还有更多字段,则需要应用一些小的更改。如果设置自己的值,则返回true,如果Android应该绘制,则返回false:

... create SimpleCursorAdapter
if (simpleCursorAdapter != null) {
  simpleCursorAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {

    @Override
    public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
      TextView textView = (TextView) view;

      long l = cursor.getLong(positionOfReadValue);
      if (l == valueOfRead) {
        textView.setTextColor(Color.RED);
      }

      return false;
    }

  } );

  setListAdapter(simpleCursorAdapter);
}
...