Лучшая практика для заполнения Spinners? - PullRequest
0 голосов
/ 06 сентября 2018

Недавно я работал над проектом, в котором у меня был Spinner с небольшим количеством значений. Значения были статическими, и я сохранил их в массиве ресурсов.

<string-array name="my_array">
    <item>Value 1</item>
    <item>Value 2</item>
    <item>Value 3</item>
    <item>Value 4</item>
</string-array>

Заполнение Spinner с использованием ArrayAdapter было довольно простым (для получения дополнительной информации, проверьте: Android Developer: Spinners ), но я знаю, что Spinner также можно заполнить, добавив android:entries="@array/my_array" в .xml напрямую.

ArrayAdapter всегда был моим выбором, когда дело дошло до заполнения Spinner, но мне интересно, каковы некоторые лучшие практики, есть ли недостатки, когда такой простой спиннер добавляется прямо в .xml , потому что это сделает класс с меньшим количеством кода более чистым и более читабельным?

1 Ответ

0 голосов
/ 06 сентября 2018

Это полностью зависит от вашего варианта использования.

Поскольку вы используете все статические значения в XML, лучше использовать опцию XML, чтобы Android загрузил массив и создал для вас адаптер. Вы знаете, какими должны быть значения, и они не изменятся.

Однако, допустим, вы работаете в приложении, которое позволяет пользователю выбрать, какую локальную учетную запись Google он хочет использовать для входа в вашу службу. Один из способов сделать это - заполнить Spinner учетными записями Google, добавленными в данный момент. Очевидно, что вы не можете определить их в XML, потому что вы не представляете, какими они будут, или когда они могут измениться. Здесь полезна динамическая загрузка значений и заполнение счетчика.

Конечно, если вы не хотите использовать XML, или вам нужен специальный адаптер, также можно просто сделать все это программно.

...