私はAndroidのSharedPreferencesの汎用ラッパーメソッドを定義して、より便利に定義済みのパラメータのリストを取得します。汎用メソッドを使用してAndroid SharedPreferencesにアクセスする
は当初、私は、すべてのサポートされているタイプ(私の場合は文字列、のInt &ブール)の列挙型を定義し、それらの一つ一つは、それに対応するクラスに関連付けられている:
public enum ParamType {
String(String.class),
Int(Intent.class),
Bool(Boolean.class);
private final Class paramClass;
ParamType(Class paramClass) {
this.paramClass = paramClass;
}
}
は、それから私は、既知の列挙型を定義しましたそれぞれの関連するタイプと、私が使用するパラメータ、:
public enum Param {
FirstParam(ParamType.Bool),
SecondParam(ParamType.String),
ThirdParam(ParamType.Int);
Param(ParamType paramType) {
this.paramType = paramType;
}
private final ParamType paramType;
}
その後、私は与えられたパラメータによって、適切な型を返すために知っているだろうことを、汎用的な方法を持っていると思います:
public static <T> T getParamValue(Param param) {
}
しかし、私はこのメソッドを実装する方法がわからないし、実際には可能ですが、一般的なTパラメータは上記の署名に渡されないためです。
私のアプリでは、私はSharedPreferencesに保存するパラメータがたくさんあります。私は、それぞれの文字列定数を定義するための良いコードではないより良いアプローチを見つけようとしています。また、新しいパラメータを追加することも容易になります – Tamir
その場合、パラメータを保存するために領域データベースを使用し、アプリケーションの別の機能を使用してみてください。クラスを作成し、キーなしで保存/読み込みできます。ほとんどの場合、電話ファイルの任意の場所にデータベースファイルを保存し、ファイルをコピーして設定を管理できます。欠点は、領域がアプリのサイズを大きくすることです。 –
私はセンサーの読み取り値を保存するためにその方法を使用しました。単純なアプリケーション設定の場合、それは過剰なものです –