我是android的新手,也是英语的新手,抱歉我的英语不好...
我已经在该学院学习了android课程。最后一个类是SharedPreferences。因此,老师给了我们一个在课程过程中使用SharedPreferences的任务。
该应用程序包含一个recyclerview,它由文本,复选框和按钮组成。
因此,我认为SharedPreferences只处理String,int,boolean,并且也很像原始语言....并且recyclerview也由具有位置的项组成。
因此,在上课之前,我找到了使用GSON存储recyclerview文本列表的方法。但是老师说我们不使用GSON ...
所以问youguys是否可以仅使用SharedPreferences从recyclerview存储数据?如果不可能的话。
如何共同存储recyclerview的数据?
答案 0 :(得分:1)
如何共同存储recyclerview的数据?
通常使用数据库来完成。在移动设备上是SQLite。您可以在这里阅读有关内容:Save data using SQLite。现在,通过基于SQLite构建的Room Persistence Library可以更轻松地使用SQLite。相关视频here。
使用GSON的recyclerview文本列表。但是老师说我们不 使用GSON ... 是否可以仅通过使用从recyclerview存储数据 共享首选项?
是的,可以从recyclerview存储数据。您不需要GSON。
您已使用 targetlist ArrayList存储RecyclerView中的数据。只需添加方法 toString 即可将其转换为字符串。在此方法中,遍历您的列表并将它们连接为字符串,您可以将其作为字符串写入到SharedPreferences中。要取回项目,只需取回字符串(也称为CSV or Comma Separated Value)并对其执行.split()。
列表数据示例:
连接字符串:Cat,Bat,Rat(将此连接字符串用逗号保存到“共享首选项”。
一些示例代码:
//Concatenating List Data and position
String string_item_name_to_save = targetlist.get(0);
String string_item_position_to_save = "0";
for(int i = 1; i<targetlist.size(); i++){
string_item_name_to_save = string_item_name_to_save +","+ targetlist.get(i);
string_item_position_to_save = string_item_position_to_save +","+ Integer.toString(i)
}
//Convert comma separated String back to List
List<String> items = Arrays.asList(concatenated_string.split("\\s*,\\s*"));