используйте Enum в ListPreference - PullRequest
0 голосов
/ 02 октября 2018

У меня довольно простой Enum, который я использую в приложении для Gender, и мне нужна страница настроек, где пользователь может его изменить, но я не могу найти способ использовать Enum в ListPreference.Я использую PreferenceFragment для создания экрана настроек, но я не могу найти способ использовать Enum, который у меня есть, как записи и entryValues ​​для ListPreference.Перечисление очень простое, просто ...

public enum Gender implements EnumSpinner {
  MALE("Male", 0),
  FEMALE("Female", 1),
  NONE("Prefer not to say", -1);

  private static SparceArray<Gender> genderMap = new SparceArray<>();

  static {
    for(Gender gender : Gender.values()) {
      genderMap.put(gender.getValue(), gender);
    }
  }

  private String name;
  private int value;

  Gender(String name, int value) {
    this.name = name;
    this.value = value;
  }

  public static Gender getGender(int val) { return genderMap.get(val); }

  @Override
  public String toString() { return name; }

  public String getName() { return name; }
  public int getValue() { return value; }
}

Возможно ли использовать в ListPreference или мне нужно будет создать 2 строковых массива в файле strings.xml и просто использовать его таким образом?

SideNote, EnumSpinner - это просто интерфейс, который позволяет мне использовать enum в счетчике.

1 Ответ

0 голосов
/ 03 октября 2018

Пожалуйста, проверьте на канале YouTube разработчиков Google, вопросы производительности Android, есть видео, объясняющее, почему вы предпочитаете не использовать enums в Android, есть другие способы получить такую ​​же функциональность.В Android есть рамки для настроек / предпочтений, отличный учебник вы можете найти здесь.

Экран настроек здания Android

...