Я пытаюсь определить общий метод обертки для SharedPreferences для Android, чтобы получить \ более удобное расположение списка предопределенных параметров.Доступ к Android SharedPreferences с использованием общего метода
Изначально я определил перечисление всех поддерживаемых типов (String, Int & Bool в моем случае), каждый из которых связан с соответствующим классом:
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 param не передается в подписи выше.
Ну, в моем приложении у меня есть МНОГИЕ параметры, которые я сохраняю в SharedPreferences, и я пытаюсь найти лучший подход к не очень приятному коду определения строковой константы для каждого из них, а затем определить явный setter & getter для каждый из них, а также упрощает добавление новых параметров – Tamir
В этом случае попробуйте использовать базу данных областей для сохранения параметров и других функций приложения. Вы можете сортировать класс и сохранять/загружать его без каких-либо ключей, и, что наиболее важно, можно сохранить файл базы данных в любом месте в памяти телефона и управлять настройками путем копирования файлов. Недостатком является то, что область увеличивает размер вашего приложения. –
Я использовал этот подход для сохранения показаний датчика, возможно, для простых настроек приложения это перебор. –