【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之最佳实践SharedPreferences(十七)
来源:互联网 发布:淘宝买vpn搜什么 编辑:程序博客网 时间:2024/06/05 14:11
转载请标明出处:
http://blog.csdn.net/developer_jiangqq/article/details/49583487
本文出自:【江清清的博客】
(一).前言:
前面我们已经对于AndroidAnnotations使用Adapters和lists做了讲解,今天我们开始具体学习一下使用DI框架SharedPreferencesHelpers的使用,SharedPreferencesHelpers允许我们可以使用Android SharedPreferences.
FastDev4Android框架项目地址:https://github.com/jiangqqlmj/FastDev4Android
(二).定义preferences:
首先你需要使用创建一个@SharedPref注解的接口来进行定义SharedPreferences:
@SharedPrefpublic interfaceMyPrefs { // The field name will have defaultvalue "John" @DefaultString("John") String name(); // The field age will have defaultvalue 42 @DefaultInt(42) int age(); // The field lastUpdated will havedefault value 0 long lastUpdated(); }基于这个规范,AndroidAnnotations会构建一个SharedPreferencesHelper并且会得到一个相同名字外加一个下划线的类。然后你可以通过@Pref注解生成一个实例。
【注】字段的类型必须是编译生成的类,还不是源类。这仅仅是AndroidAnnotations上面是这个情况。
@EActivitypublic classMyActivity extends Activity { @Pref MyPrefs_ myPrefs; // ... }你可以如下进行使用:
// Simple editmyPrefs.name().put("John"); // Batch editmyPrefs.edit() .name() .put("John") .age() .put(42) .apply(); // Preferenceclearing:myPrefs.clear(); // Check if a valueexists:boolean nameExists =myPrefs.name().exists(); // Reading a valuelong lastUpdated =myPrefs.lastUpdated().get(); // Reading a valueand providing a fallback default valuelong now =System.currentTimeMillis();long lastUpdated =myPrefs.lastUpdated().getOr(now);(三).默认资源值:
自AndroidAnnotations3.0起,现在我们可以使用@DefaultRes来从Android Resources中注入一个默认值:
@SharedPrefpublic interfaceMyPrefs { @DefaultRes(R.string.defaultPrefName) String resourceName(); @DefaultRes // uses'R.string.defaultPrefAge' to set default value String defaultPrefAge();}(四).preferencekey:
自AndroidAnnotations3.1起,现在可以通过StringResource的id来作为preferencekey而不是方法的名称。这样但preferences是一个xml文件的时候,就可以使用stringresourcekeys.使用实例如下:
@SharedPrefpublic interfaceMyPrefs { @DefaultString(value = "John",keyRes = R.string.myPrefKey) String name(); @DefaultRes(keyRes =R.string.myOtherPrefKey) String defaultPrefAge();}(五).作用域:
你可以通过设置下面值来控制访问权限:
- ACTIVITY.使用MyActivity_MyPrefs命名共享preference
- ACTIVITY_DEFAULT,默认权限MyActivity进行命名,Activity级别权限(可以通过activity.getPreferences()进行获取)
- APPLICATION_DEFAULT,应用级别默认SharedPreference或者UNIQUE,使用MyPrefs命名。
因此如果需要定义一个应用级别的preference,这样我们可以在应用中都共享这个preferences,那么我们需要进行如下定义:
@SharedPref(value=SharedPref.Scope.UNIQUE)public interfaceMyPrefs {...(六).使用PreferencesActivity:
Android PreferenceActvitiy和PreferenceFragment可以进行编辑我们上面注解生成的preferences。
@SharedPref(SharedPref.Scope.UNIQUE)public interfaceMyPrefs {...} public static StringPREF_NAME = "MyPrefs"; // in onCreate // Using yourMyPrefs valuesthis.getPreferenceManager().setSharedPreferencesName(PREF_NAME); // Opening thelayoutaddPreferencesFromResource(R.xml.prefs);
到此位置关于AndroidAnnotations最佳实践SharedPreferences已经讲解完,同时FastDev4Android项目已经添加配置了AndroidAnnotations框架,后期的框架项目中也会主要使用这个DI框架,.欢迎大家去Github站点进行clone或者下载浏览:https://github.com/jiangqqlmj/FastDev4Android 同时欢迎大家star和fork整个开源快速开发框架项目~
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之最佳实践SharedPreferences(十七)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之最佳实践之Adapters和lists(十六)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之注入组件Components(九)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之注入组件Components(九)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之第三方框架集成RoboGuice(十三)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之第三方框架集成Otto事件总线(十四)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之第三方框架集成OrmLite(十五)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之Injection标签详解(十)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之事件绑定Event Binding(十一)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之线程处理Threading(十二)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架的工作原理(八)
- 【FastDev4Android框架开发】Volley完全解析之进阶最佳实践与二次封装(二十七)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架介绍和Android Studios基本配置(七)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架介绍和Android Studios基本配置(七)
- 【FastDev4Android框架开发】RecyclerView完全解析之结合AA(Android Annotations)注入框架实例(三十)
- 【FastDev4Android框架开发】Volley完全解析之基础使用(二十六)
- 【FastDev4Android框架开发】实例解析之SwipeRefreshLayout+RecyclerView+CardView(三十五)
- ORMapping 框架使用最佳实践
- 我看——选择和努力,哪个更重要?
- android WebView 开发指栏
- 服务之非绑定服务
- Java面向对象之类和对象
- 怎么添加非官方的chrome扩展?(jsonview为例)
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之最佳实践SharedPreferences(十七)
- android studio 安装后无法启动问题
- 国产优秀SAAS版项目管理软件、缺陷管理、BUG跟踪软件
- java程序的内存分配
- 设置图片加载进度条
- mysql添加外键时报errno: 150错误的解决方法
- 攻城狮开发产品以中国高铁成功为鉴
- Tomcat使用Spring管理对象出现HashMap死循环的问题
- Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)