Skip to content

Latest commit

 

History

History
106 lines (94 loc) · 5.2 KB

File metadata and controls

106 lines (94 loc) · 5.2 KB

PreferenceCell

English | 简体中文 | 日本語

Download License

PreferenceCellはSharePreferencesをベースにした軽量なAndroid Preferenceライブラリーです。PreferenceCellを使えば、今まで面倒なPreference読み書きメソッドの定義もいらなくなり、より安全、快速、綺麗な書き方でPreferenceデータの構築をコード1行だけで実現できる。 更に、データーキャッシュ保存機能を用いのPreferenceCellは、頻繁的なPreferenceデーター読み込み処理にはパフォーマンス上昇させる効果が抜群です。

インストール

下記のビルド依存関係コードをルートフォルダーのbuild.gradleファイルに追加する:

  implementation 'com.sunnylin2008:preferencecell:1.1'

(もしライブラリーソースの変更が必要であれば、PreferenceCellフォルダーをあなたのプロジェクトにそのまま追加しても良い。)

初期化

  1. 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 
  1. 下記の様なデータ初期化コードを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.