做了一个项目,想在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方法,哈哈哈