做了一个项目,想在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; } }
//取出数据 @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方法,哈哈哈