Próbuję uczynić moją klasę parcelable, ale ma ona listę wyliczeń wewnątrz.Jak utworzyć listę z listą <enum>?
Już widziałem, jak to zrobić z pojedynczych teksty stałe here ...
Jak mogę to zrobić?
Dzięki! ;)
Próbuję uczynić moją klasę parcelable, ale ma ona listę wyliczeń wewnątrz.Jak utworzyć listę z listą <enum>?
Już widziałem, jak to zrobić z pojedynczych teksty stałe here ...
Jak mogę to zrobić?
Dzięki! ;)
Ok, rozwiązałem to po prostu używając informacji pod cytowanym linkiem.
To co zrobiłem:
public enum Improvement {ENUM1, ENUM2, etc}
public void writeToParcel(Parcel dest, int flags) {
...
List<String> improvementStrings = new ArrayList<String>();
for (Improvement improvement : improvements) {
improvementStrings.add(improvement.name());
}
dest.writeList(improvementStrings);
}
public void readFromParcel(Parcel in) {
...
List<String> improvementStrings = new ArrayList<String>();
in.readList(improvementStrings, null);
for (String improvementString : improvementStrings) {
improvements.add(Improvement.valueOf(improvementString));
}
}
Prawdopodobnie szybszy jest serializowanie 'improvement.ordinal()', które jest int, a nie 'improvement.name()'. Pozwala to uniknąć powtarzania tego samego zestawu ciągów w kółko. Następnie, na odbierającym końcu, 'Improvement value = Improvement.values () [ordinal]' (i możesz buforować 'Improvement.values ()' w zmiennej lokalnej). –
Świetna propozycja, @ Jono! – mvalencaa
Jeśli można dokonać parcelable enum, a następnie zobaczyć [pytanie] (http://stackoverflow.com/questions/7042272/how-to-properly-implement -popakowalny-z-tablicąplikudostępnego? rq = 1), aby działał z listą. – Geobits
Dzięki, @Geobits! – mvalencaa