2014-01-20 21 views
0

我有我的应用程序的数据库,但其中一些条目中有换行符,所以我必须用“$$”替换“\ n”,当我接受用户条目以保留插入语句有效。当我将数据返回给用户时,我需要显示换行符。Android - 光标加载器 - 动态修改结果

总之,我需要接受包含换行符的输入,将其存储到数据库,然后用换行符正确显示回用户。

任何想法? 感谢

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

//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); 
+0

我们展示你的代码。如果你正在使用Android的SQLiteDatabase对象,通过查询,更新和插入方法,你可以在参数中放置一个包含换行符的字符串,并且它们会很好地返回,不需要转换。 – 323go

+0

添加代码。谢谢 – Shmuel

回答

0

由于323go说,你可以,如果你使用参数化的插入查询使用包含换行符的字符串。我自己没有直接的经历,但我不怀疑他是正确的。但是,听起来您的数据库中已经有数据用$$换行格式化换行。

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

SELECT name FROM table 

...有:

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