Android - 光标加载器 - 动态修改结果

时间:2014-01-20 17:42:55

标签: android sqlite cursor line-breaks

我的应用程序有一个数据库,但有些条目中有换行符,所以当我接受用户条目以保持insert语句有效时,我不得不用“$$”替换“\ n”。我需要在将数据返回给用户时显示换行符。

简而言之,我需要接受包含换行符的输入,将其存储到db,然后使用换行符正确显示回用户。

有什么想法吗? 感谢

这是我要插入数据库的代码 -

    //first replace \n (i used StringUtils b/c i found it to be slightly faster)
    category =  StringUtils.replace(category, "\n", "");
    subCategory = StringUtils.replace(subCategory,"\n", "");
    brand =     StringUtils.replace(brand,"\n", "");
    name =      StringUtils.replace(name,"\n", "");
    notes =     StringUtils.replace(notes,"\n", "$$");

    initialValues.put(KEY_CATEGORY, category);
    initialValues.put(KEY_SUB_CATEGORY, subCategory);
    initialValues.put(KEY_BRAND, brand);
    initialValues.put(KEY_NAME, name);
    initialValues.put(KEY_NOTES, notes);

    db.insert(DATABASE_TABLE, null, initialValues);

1 个答案:

答案 0 :(得分:0)

正如323go所说,如果使用参数化插入查询,则可以使用包含换行符的字符串。我自己没有这样做的直接经验,但我不怀疑他是对的。但是,听起来您已经在数据库中使用$$格式化了换行符的数据。

换行符的ASCII十六进制值为0A,如果在SQLite中选择x'0A',则应生成换行符。因此,当您选择时,可以尝试用x'0A'替换$$的实例。例如,您将替换此语句:

SELECT name FROM table

...与:

SELECT REPLACE(name, '$$', x'0A') AS name FROM table