2013-05-11 53 views
0

我正在使用SQLite数据库处理Android项目,并在数据库中包含一个由数据库中的个人是否重要的​​布尔值(存储1和0)组成的列。Android - 数据库SQLite - 转换布尔值

我想要做的是输出到一个文本视图列表视图一个“!”如果一个人很重要,以及“”如果他们不重要使用游标和游标适配器。我可以得到“1”和“0”出现在列表视图中,但我的问题是如何/在哪里将它们转换为“!”和“”?

我目前使用的查询是

return database.query("people", new String[] {"_id", "important"}, null, null, null, null, "important" + " DESC, " + "name" + " ASC"); 

回答

0

最简单的方法是在数据库查询中执行此操作。 的query功能也太不灵活,所以你必须使用rawQuery代替:

db.rawQuery("SELECT _id, " + 
        "CASE WHEN important THEN '!' ELSE ' ' END AS important " + 
      "FROM people " + 
      "ORDER BY important DESC, name ASC", null); 
+0

嗨感谢逻辑,但列表视图仍然呈现 这是我在用0和1:'回报database.rawQuery(“SELECT _id,important,”+ “CASE when then important THEN important ='*'ELSE''END AS impMarker”+ “FROM people”+ “ORDER BY DESC,people ASC”,null) ;' 我已经尝试交替'重要=','=='但没有成功。有任何想法吗? – 2013-05-11 11:36:10

+0

你为什么改变查询字符串?如果您需要名为'important'的结果列,请更改'AS'。 – 2013-05-11 12:05:01

+0

你是说当我用'SELECT _id,重要的时候,'的第一位吗?当我没有把重要的(如你给我的查询),程序在启动时崩溃,因为在我的其他代码中我有'String [] from = new String [] {“important”};'用于我的CursorAdaptor – 2013-05-11 12:20:09

0

如果是,我敢肯定这是一个自定义的ListView,那么你就必须这样做,在你的CustomAdapter为ListView,它负责用传递给它的数据填充ListView。 Check搞明白了。这样做很简单,只需循环你的光标,如果其他语句。