PreferenceCellはSharePreferencesをベースにした軽量なAndroid Preferenceライブラリーです。PreferenceCellを使えば、今まで面倒なPreference読み書きメソッドの定義もいらなくなり、より安全、快速、綺麗な書き方でPreferenceデータの構築をコード1行だけで実現できる。 更に、データーキャッシュ保存機能を用いのPreferenceCellは、頻繁的なPreferenceデーター読み込み処理にはパフォーマンス上昇させる効果が抜群です。
下記のビルド依存関係コードをルートフォルダーのbuild.gradleファイルに追加する:
implementation 'com.sunnylin2008:preferencecell:1.1'
(もしライブラリーソースの変更が必要であれば、PreferenceCellフォルダーをあなたのプロジェクトにそのまま追加しても良い。)
- exampleの様にPreferenceManage管理クラスを作成する上で、下記の様にPreferenceデータを定義する。
//Simple Type
public final static PreferenceCell<Boolean> BOOL_TYPE = new PreferenceCell<>(true); //a bool value preference
public final static PreferenceCell<String> STRING_TYPE = new PreferenceCell<>(""); //a String value preference
public final static PreferenceCell<Integer> INT_TYPE = new PreferenceCell<>(2); //a int value preference
public final static PreferenceCell<Long> LONG_TYPE = new PreferenceCell<>(0L);//a long value preference
public final static PreferenceCell<Float> FLOAT_TYPE = new PreferenceCell<>(0.f);//a float value preference
public final static PreferenceCell<ExampleEnum> ENUM_TYPE = new PreferenceCell<>(ExampleEnum.A); //a enum value that you declare and want to read and write to the preference.
//Map Type
public final static PreferenceMapCell<Integer, ExampleEnum> MAP_INTEGER_TYPE = new PreferenceMapCell<>(Integer.class, ExampleEnum.C); //a map enum value with int key preference
public final static PreferenceMapCell<ExampleEnum,Integer> MAP_ENUM_TYPE = new PreferenceMapCell<>(ExampleEnum.class,0);//a map int value with enum key preference - 下記の様なデータ初期化コードをPreferenceManageに追加する:
static {
PreferenceCellBase.init(ExampleApplication.getInstance(), PreferenceManage.class);
}(ExampleApplicationはexample様なカスタマイズアプリケーションクラスです)
//Simple Type
PreferenceManage.BOOL_TYPE.set(false);
PreferenceManage.STRING_TYPE.set("Change the string");
PreferenceManage.INT_TYPE.set(999);
PreferenceManage.LONG_TYPE.set(0L);
PreferenceManage.FLOAT_TYPE.set(0.f);
PreferenceManage.ENUM_TYPE.set(ExampleEnum.B);
//Map Type
PreferenceManage.MAP_ENUM_TYPE.set(ExampleEnum.B,123);
PreferenceManage.MAP_INTEGER_TYPE.set(321, ExampleEnum.A]);//Simple Type
Boolean boolType = PreferenceManage.BOOL_TYPE.get();
String stringType = PreferenceManage.STRING_TYPE.get();
Integer intType = PreferenceManage.INT_TYPE.get();
Long longType = PreferenceManage.LONG_TYPE.get();
Float floatType = PreferenceManage.FLOAT_TYPE.get();
ExampleEnum enumType = PreferenceManage.ENUM_TYPE.get();
//Map Type
PreferenceManage.MAP_ENUM_TYPE.get(ExampleEnum.B);
PreferenceManage.MAP_INTEGER_TYPE.get(321);//Simple Type
PreferenceManage.BOOL_TYPE.reset();
PreferenceManage.STRING_TYPE.reset();
PreferenceManage.INT_TYPE.reset();
PreferenceManage.LONG_TYPE.reset();
PreferenceManage.FLOAT_TYPE.reset();
PreferenceManage.ENUM_TYPE.reset();
//Map Type
PreferenceManage.MAP_ENUM_TYPE.reset(ExampleEnum.values());
PreferenceManage.MAP_INTEGER_TYPE.reset(new Integer[]{[key range]});void enableCache(Boolean enableCache)PreferenceCellBase.setPrefix("Your prefix");Copyright (C) 2017 Sunny Lin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.