Android存储最近10个搜索值

时间:2012-10-25 14:16:03

标签: android sharedpreferences

我有一个在数据库中搜索的应用。我想存储最后10个搜索值(我希望它们在用户关闭应用程序时仍然保留)以将它们用作AutoCompleteTextView中的适配器。

SharedPreferences似乎不支持数组或arraylists。这里最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用SQLiteDatabase中的表来存储搜索历史记录,并使用标准SQL API来访问它。

或者您可以在XML,JSON,YAML,CSV,纯文本或任何您喜欢的内容中使用file来保存历史记录。优点是简单和(可能)性能。缺点是你必须自己序列化和反序列化(可能的变化是直接序列化Java对象)

答案 1 :(得分:0)

SharedPreferences支持boolean int,float,long和String。

但是ArrayList是Serializable,所以如果你还声明对象Serializable,你可以将它们编码为带有ObjectOutputStream的ByteBuffer,然后将这个byteBuffer转换为String,最后将它存储到SharedPreferences中,或者更好地存储到二进制文件中(作为bytebuffer)。

在你的情况下,只需保存String,就可以更轻松地运行数组的每个元素并将它们保存为“arrayName”+ index,最后保存数组的大小。