Util:SharedPreferences

public class SPUtils{
public SPUtils(){
/* cannot be instantiated */
throw new UnsupportedOperationException("cannot be instantiated");
}
/**
* 保存在手机里面的文件名
*/
public static final String FILE_NAME = "share_data";
/**
* 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
* @param context
* @param key
* @param object
*/
public static void put(Context context, String key, Object object){
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
if (object instanceof String){
editor.putString(key, (String) object);
} else if (object instanceof Integer){
editor.putInt(key, (Integer) object);
} else if (object instanceof Boolean){
editor.putBoolean(key, (Boolean) object);
} else if (object instanceof Float){
editor.putFloat(key, (Float) object);
} else if (object instanceof Long){
editor.putLong(key, (Long) object);
} else{
editor.putString(key, object.toString());
}
SharedPreferencesCompat.apply(editor);
}
/**
* 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
* @param context
* @param key
* @param defaultObject
* @return
*/
public static Object get(Context context, String key, Object defaultObject){
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,Context.MODE_PRIVATE);
if (defaultObject instanceof String){
return sp.getString(key, (String) defaultObject);
} else if (defaultObject instanceof Integer){
return sp.getInt(key, (Integer) defaultObject);
} else if (defaultObject instanceof Boolean){
return sp.getBoolean(key, (Boolean) defaultObject);
} else if (defaultObject instanceof Float){
return sp.getFloat(key, (Float) defaultObject);
} else if (defaultObject instanceof Long){
return sp.getLong(key, (Long) defaultObject);
}
return null;
}
/**
* 移除某个key值已经对应的值
* @param context
* @param key
*/
public static void remove(Context context, String key){
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.remove(key);
SharedPreferencesCompat.apply(editor);
}
/**
* 清除所有数据
* @param context
*/
public static void clear(Context context){
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.clear();
SharedPreferencesCompat.apply(editor);
}
/**
* 查询某个key是否已经存在
* @param context
* @param key
* @return
*/
public static boolean contains(Context context, String key){
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,Context.MODE_PRIVATE);
return sp.contains(key);
}
/**
* 返回所有的键值对
* @param context
* @return
*/
public static Map<String, ?> getAll(Context context){
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,Context.MODE_PRIVATE);
return sp.getAll();
}
/**
* 创建一个解决SharedPreferencesCompat.apply方法的一个兼容类
*/
private static class SharedPreferencesCompat{
private static final Method sApplyMethod = findApplyMethod();
/**
* 反射查找apply的方法
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
private static Method findApplyMethod(){
try{
Class clz = SharedPreferences.Editor.class;
return clz.getMethod("apply");
} catch (NoSuchMethodException e){
}
return null;
}
/**
* 如果找到则使用apply执行,否则使用commit
* @param editor
*/
public static void apply(SharedPreferences.Editor editor){
try{
if (sApplyMethod != null){
sApplyMethod.invoke(editor);
return;
}
} catch (IllegalArgumentException e){
} catch (IllegalAccessException e){
} catch (InvocationTargetException e){
}
editor.commit();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你能在这段代码里面添加删除存储的数据功能package com.example.reciteword; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageButton; import android.widget.ListView; import android.widget.TextView; import androidx.fragment.app.Fragment; import java.util.ArrayList; import java.util.List; import java.util.Random; public class wrongFragment extends Fragment { private List<Word> wordList = new ArrayList<>(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_wrong, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); final SharedPreferences sharedPre = getActivity().getSharedPreferences("t",Context.MODE_PRIVATE); final int[] wrongNum = {sharedPre.getInt("wrongNum", 0)}; System.out.println(wrongNum[0]); wordList.clear(); for(int i = 1;i<=wrongNum[0];i++){ int temp = sharedPre.getInt("wrong"+i, 0); Word word = new Word(Data.getWord(temp),Data.getPron(temp),Data.getwordDefine(temp),sharedPre.getInt("word"+temp,1),0); System.out.println(Data.getRandNum()+":"+sharedPre.getInt("word"+temp,9)); wordList.add(word); } WordAdapter adapter = new WordAdapter(getActivity(),R.layout.word_item,wordList); ListView listView = (ListView) getActivity().findViewById(R.id.wrong_list_view); listView.setAdapter(adapter); } }
最新发布
05-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值