如何使用SimpleCursorAdapter创建ListView跳过“”文本?

时间:2011-03-28 19:17:46

标签: android sqlite listview simplecursoradapter

我有一个ListView,其中包含使用SimpleCursorAdapter填充的文本字段。在我的数据库中,该字段被允许为null(一个期望的效果),但是,如果该值为null,而不是让TextView为空(由SimpleCursorAdapter填充),我希望它包含一些默认值,比如说“-------”。我怎样才能实现这种效果?

它可以通过我运行SQLite查询的方式完成,也可以通过某种方法告诉textView忽略“”,并显示其android:text值或类似的东西。无论采用哪种方法,我都无法弄清楚如何做到这一点。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

我会根据this answer在SQL SELECT语句中使用ifnull。类似的东西:

SELECT IFNULL(title, "------") FROM books;

或者如果您需要列名:

SELECT IFNULL(title, "------") AS title FROM books;

答案 1 :(得分:0)

我认为如果调用setText(""),您可以在TextView上设置任何特殊属性以显示特定值。有android:提示但是我肯定在调用setText()时它会离开窗口,即使它是空白的,并且视图被回收,因此可能无论如何都不会起作用。

因此,当值为null时,您应该在sql查询中返回“-----”,或者当值为空时使用SimpleCursorAdapter.ViewBinder设置“-----”。将它构建到sql查询中应该是最简单的。