这里实现的是一个列表项收藏的功能,SQL太麻烦了。
数组格式:ArrayList<Map<String,Any>>
每一个list数组为一个列表项:思路就是把每次收藏的数据按照指定格式拼接存储成String。
下面是用@@拼接每个list数组,list中的map使用>分割,为了后面获取匹配!
可以自定义,泛化一下方法。
例如数据为:动漫1 地址:xx.html,动漫2,地址:xx2.html
拼接后:动漫1>xx.html@@动漫2>xx2.html 字符串!
/**
* 收藏动漫
* @param itemId 数组下标
* @param itemName 动漫名字
* @param splitList 设置list分割符号
* @param splitMap 设置map分割符号
*/
fun saveDM(itemName:String,itemId:String,splitList:String = "@@",splitMap:String=">"):Boolean{
//这是封装的SharePreference方法,打开指定文件,指定key的值
val likeList = iwhDataOperator.getSHP("likeKey","like","")
//检测是否已经存在
if(!likeList.matches(Regex(".*?${itemName}.*?"))){
iwhDataOperator.setSHP("likeKey","$likeList$splitList$itemName$splitMap$itemId","like")
// Log.d("@@setSHP:","${likeList}@@${itemName}>$itemId")
return true
}else{
return false
}
}
下面就是取出返回ArrayList<Map<String,Any>>
SharePreference:动漫1>xx.html@@动漫2>xx2.html 按照这个数据,下面就不解释了。
/**
* 获取收藏
* @return 返回收藏列表
*/
fun getSaveDM():ArrayList