Android之SharedPreferences保存数组

做了一个项目,想在listview的点击跳转之后实现点击收藏实现收藏页面。

我要用代码记录下到底我收藏了哪些,只好用数组存储了。。。

还有我把我要点击的那个图片也收藏进来了。。。

真的好激动,实现了这个功能。。。。。

使用了字符串保存数组。

源代码如下:

SharePreference类:

package com.loopj.android.interfac;

import java.util.ArrayList;
import java.util.List;


import org.json.JSONArray;


import com.example.jsonweiin.R;


import android.content.Context;
import android.content.SharedPreferences;


public class SharePreference {

public static final String SHOU = "shou";
public static final String tt="tt";
/**
* 保存Imageview图片到Preference
*/public static void setInt(Context context, String key, int value) {
// 得到SharedPreferences
SharedPreferences preferences = context.getSharedPreferences(
"p", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt(key, value);
editor.commit();
}
//保存titles
public static void setString(Context context,String key,List<String>values,String value){

SharedPreferences preferences = context.getSharedPreferences(
"p", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
String regularEx ="#";
String str="";
if(values.size()>0){
String[] titles=values.toArray(new String[values.size()]);
for(String title:titles){
value+=regularEx;
value+=title;
}
}
editor.putString(key, value);
editor.commit();
}

/**
* 从Preference取出图片数据
*/
public static int getInt(Context context, String key) {
SharedPreferences preferences = context.getSharedPreferences(
"p", Context.MODE_PRIVATE);
// 返回key值,key值默认值是falsecontext
//第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
return preferences.getInt(key, R.drawable.s1);
}
//从Preference取出titels数据
public static List getString(Context context, String key){
SharedPreferences preferences = context.getSharedPreferences(
"p", Context.MODE_PRIVATE);
String regularEx = "#";
List<String>titles=new ArrayList<String>();
String[] str = null;
//一开始是没值的,默认是空的
String values = preferences.getString(key, "");
str = values.split(regularEx);
for(int i=0;i<str.length;i++)
{
titles.add(str[i]);
}
return titles;
}
}

在Activity中

//取出数据
@SuppressWarnings("unchecked")
private void initShare() {
// TODO Auto-generated method stub
titles=SharePreference.getString(this, SharePreference.tt);
if(titles.contains(titleText)){
shou=SharePreference.getInt(this, SharePreference.SHOU);
shoucang.setImageResource(shou);
}
else{
shoucang.setImageResource(R.drawable.s1);
}

点击Imageview的代码:

shoucang.setImageResource(R.drawable.s3);
//保存listview的titles
SharePreference.setInt(this, SharePreference.SHOU, R.drawable.s3);
SharePreference.setString(this, SharePreference.tt, titles, titleText);

这样就能实现存储数据的功能,而且还是用的SharedPreferences方法,哈哈哈

    原文作者:飘走的我
    原文地址: https://blog.csdn.net/qq_33642117/article/details/51693352
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞