2016-10-30 3 views
0

Я пытаюсь определить общий метод обертки для 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 не передается в подписи выше.

ответ

0

Это ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ, не делайте этого. Вы можете создать интерфейс для сохранения своего пользовательского объекта и его загрузки и реализовать его для SharedPreferences и базы данных. Но не обязательно создавать общие для каждого интегрального типа, если существует три - пять типов.

+0

Ну, в моем приложении у меня есть МНОГИЕ параметры, которые я сохраняю в SharedPreferences, и я пытаюсь найти лучший подход к не очень приятному коду определения строковой константы для каждого из них, а затем определить явный setter & getter для каждый из них, а также упрощает добавление новых параметров – Tamir

+0

В этом случае попробуйте использовать базу данных областей для сохранения параметров и других функций приложения. Вы можете сортировать класс и сохранять/загружать его без каких-либо ключей, и, что наиболее важно, можно сохранить файл базы данных в любом месте в памяти телефона и управлять настройками путем копирования файлов. Недостатком является то, что область увеличивает размер вашего приложения. –

+0

Я использовал этот подход для сохранения показаний датчика, возможно, для простых настроек приложения это перебор. –

 Смежные вопросы

  • Нет связанных вопросов^_^