最近,我在一个项目中工作,该项目的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),
但我知道也可以通过直接在 .xml 中添加Spinner
来填充android:entries="@array/my_array"
。
ArrayAdapter
时,我总是选择 Spinner
,但是我想知道,有哪些最佳实践,直接在中填充这样的简单微调器有什么缺点吗? .xml ,因为它将使一个类的代码更少,更简洁,更易读?
答案 0 :(得分:1)
这完全取决于您的用例。
由于您使用的都是XML静态值,因此最好使用XML选项让Android加载数组并为您创建适配器。您知道值应该是什么,并且它们不会改变。
但是,假设您正在使用app制作应用程序,则该应用程序允许用户选择他们要使用哪个本地Google帐户登录到您的服务。一种方法是让Spinner填充用户当前添加的Google帐户。显然,您无法在XML中定义它们,因为您不知道它们将是什么,或它们何时会更改。在此处动态加载值并填充Spinner很有用。
当然,如果您不想使用XML,或者需要自定义适配器,也可以通过编程方式全部完成。