Esperandro的使用

Esperandro简介

esperandro库通过识别已有的键值对以及相应的类型来帮助开发者使用SharedPreferences。并用于每一个使用了SharedPreference命名方法的preferences数据,这样既安全又容易。esperandro使用注释处理器在编译时生成一个类来定义接口。当以后存储和访问perferences数据时,就会使用这个类。

 

官网 http://dkunzler.github.io/esperandro/  

 

添加 jar包 或者依赖

eclipse里要麻烦一些 多配置一下  跟ButterKnife一样  参考 http://blog.csdn.net/chenyufeng1991/article/details/46900395 

新建接口  继承   SharedPreferenceActions     @SharedPreferences  中的name就是 sp文件夹中的文件名 

 1 @SharedPreferences(name="setting",mode=SharedPreferenceMode.PRIVATE)
 2 public interface SettingSP extends SharedPreferenceActions {
 3     
 4     int themeValue();
 5     void themeValue(int themeValue);
 6     
 7     String strValue();
 8     void strValue(String strValue);
 9     
10     boolean boolValue();
11     void boolValue(boolean boolValue);
12 
13 }

 

设置需要存入的值   ,支持 int, long, float, boolean, String and Set<String>.

默认值 为  

int - -1
long - -1l
float - -1.0f
boolean - false
String - "" (empty String)
Set<String> - null

 

如果想要设置默认值  在上方加入@Default进行设置    在类型前面加入 of  进行配置   

    @Default(ofInt=1)
    int themeValue();
    void themeValue(int themeValue);
    
    @Default(ofString="hehe")
    String strValue();
    void strValue(String strValue);
    
    @Default(ofBoolean=true)
    boolean boolValue();
    void boolValue(boolean boolValue);

 

取得 实例     SettingSP.class  就是继承 SharedPreferenceActions   的接口   

Esperandro.getPreferences(Class<T> preferenceClass, Context context)
SettingSP settingSP= Esperandro.getPreferences(SettingSP.class, mContext);

 

有了实例就能 获取和设置 值 了,这样直接获取的值都是一开始设置的默认值 ,而且data/data文件sp文件夹也不会生成的,

        String str=settingSP.strValue();
        int themeValue=settingSP.themeValue();
        boolean bool=settingSP.boolValue();

设置值的时候  sp文件夹里面的setting 文件才会生成

settingSP.strValue("haha");
settingSP.themeValue(666);

 

实际情况中  可能不止一个这样的接口    而且在每个activity里面自己生成实例也很麻烦   可以在BaseActivity  里面这么做

 1     // SharedPreferences
 2     protected <P> P getSharedPreferences(Class<P> spClass) {
 3         return Esperandro.getPreferences(spClass, this);
 4     }
 5 
 6     public AccountSharedPreferences getAccountSharedPreferences() {
 7         return getSharedPreferences(AccountSharedPreferences.class);
 8     }
 9     public SettingsSharedPreferences getSettingsSharedPreferences() {
10         return getSharedPreferences(SettingsSharedPreferences.class);
11     }
12     public LocationSharedPreferences getLocationSharedPreferences() {
13         return getSharedPreferences(LocationSharedPreferences.class);
14     }

 

之后在activity里面  要什么接口就直接 调用下面3中 该接口的get方法就行了    获取值和设置值的方法如下

String str=getSettingsSharedPreferences().strValue();

getSettingsSharedPreferences().themeValue(666);

 

posted @ 2016-06-20 11:29  demon9  阅读(479)  评论(0编辑  收藏  举报