填充微调器的最佳实践?
Best practice for populating Spinners?
最近,我在做一个项目,其中有一个 Spinner
具有少量值。
这些值是静态的,我将它们存储在资源中的一个数组中。
<string-array name="my_array">
<item>Value 1</item>
<item>Value 2</item>
<item>Value 3</item>
<item>Value 4</item>
</string-array>
使用 ArrayAdapter
填充 Spinner
非常简单(有关更多信息,请查看:Android Developer: Spinners),
但我知道 Spinner
也可以通过直接在 .xml 中添加 android:entries="@array/my_array"
来填充。
在填充 Spinner
时,ArrayAdapter
始终是我的选择,但我想知道,有哪些最佳实践,直接在 .xml,因为它会使 class 代码更少、更清晰、更具可读性?
这完全取决于您的用例。
由于您使用的静态值都在 XML 中,因此您最好使用 XML 选项让 Android 加载数组并为你。您知道价值观应该是什么,而且它们不会改变。
但是,假设您正在开发的应用允许用户 select 他们想使用哪个本地 Google 帐户登录您的服务。一种方法是让 Spinner 填充用户当前添加的 Google 帐户。显然,您不能在 XML 中定义它们,因为您不知道它们将是什么,或者它们何时可能会改变。这是动态加载值和填充 Spinner 有用的地方。
当然,如果您不想使用 XML,或者您需要自定义适配器,也可以通过编程方式完成。
最近,我在做一个项目,其中有一个 Spinner
具有少量值。
这些值是静态的,我将它们存储在资源中的一个数组中。
<string-array name="my_array">
<item>Value 1</item>
<item>Value 2</item>
<item>Value 3</item>
<item>Value 4</item>
</string-array>
使用 ArrayAdapter
填充 Spinner
非常简单(有关更多信息,请查看:Android Developer: Spinners),
但我知道 Spinner
也可以通过直接在 .xml 中添加 android:entries="@array/my_array"
来填充。
Spinner
时,ArrayAdapter
始终是我的选择,但我想知道,有哪些最佳实践,直接在 .xml,因为它会使 class 代码更少、更清晰、更具可读性?
这完全取决于您的用例。
由于您使用的静态值都在 XML 中,因此您最好使用 XML 选项让 Android 加载数组并为你。您知道价值观应该是什么,而且它们不会改变。
但是,假设您正在开发的应用允许用户 select 他们想使用哪个本地 Google 帐户登录您的服务。一种方法是让 Spinner 填充用户当前添加的 Google 帐户。显然,您不能在 XML 中定义它们,因为您不知道它们将是什么,或者它们何时可能会改变。这是动态加载值和填充 Spinner 有用的地方。
当然,如果您不想使用 XML,或者您需要自定义适配器,也可以通过编程方式完成。