我需要将一个字符串数组保存到数据库,但它不会让我.这就是我所拥有的:
public long createEntry(String startTime, String endTime, String[] states) { ContentValues initialValues = new ContentValues(); initialValues.put(START_KEY_TIME , startTime); initialValues.put(END_KEY_TIME , endTime); initialValues.put(KEY_STATE, states ); return databaseConnect.insert(DATABASE_table, null, initialValues);}
但是如果我把string []状态放入,它说内容值不能参与.我该如何解决这个问题?我以为我在状态中有7个东西,我可以喜欢有7个单独的字符串并在每个中存储东西然后将所有字符串放回字符串数组中吗?或者这是不好的做法?
解决方法:
您无法将String数组保存到数据库中.但你可以使用这个技巧.
1)所以你必须使用convertArrayToString(String [] array)方法将它转换为简单的String.这将使用’逗号’连接字符串的所有元素.
2)当您从数据库中检索此String时,您可以使用convertStringToArray(String str)方法将其转换回String数组.此方法将从“逗号”中拆分字符串,您将获得原始数组.
public static String strseparator = "__,__";public static String convertArrayToString(String[] array){ String str = ""; for (int i = 0;i<array.length; i++) { str = str+array[i]; // Do not append comma at the end of last element if(i<array.length-1){ str = str+strseparator; } } return str;}public static String[] convertStringToArray(String str){ String[] arr = str.split(strseparator); return arr;}
总结 以上是内存溢出为你收集整理的Android:SQLite保存字符串数组?全部内容,希望文章能够帮你解决Android:SQLite保存字符串数组?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)