【问题标题】:Best practice for populating Spinners?填充 Spinner 的最佳实践?
【发布时间】:2018-09-07 00:26:51
【问题描述】:

最近,我在一个项目中工作,我有一个 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" 来填充。

ArrayAdapter 在填充Spinner 时一直是我的选择,但我想知道,有哪些最佳实践,直接在 .xml 中填充这样一个简单的微调器有什么缺点,因为它会使类的代码更少、更干净、更易读?

【问题讨论】:

  • 也许你正在寻找这个 -> stackoverflow.com/questions/4029261/… ?
  • @MrVasilev 我读过那篇文章,在答案的最后,blindstuff worte:“我听说这并不总是适用于设计师,但它编译得很好”,所以我想知道这个解决方案不起作用的情况是什么?

标签: android android-layout spinner android-spinner


【解决方案1】:

这完全取决于您的用例。

由于您使用的都是 XML 中的静态值,因此最好使用 XML 选项让 Android 加载数组并为您创建适配器。你知道价值观应该是什么,而且它们不会改变。

但是,假设您正在制作的应用程序允许用户选择他们想使用哪个本地 Google 帐户登录您的服务。一种方法是使用用户当前添加的 Google 帐户填充 Spinner。显然,您不能在 XML 中定义它们,因为您不知道它们会是什么,或者它们何时会改变。这就是动态加载值和填充 Spinner 的用处。

当然,如果您不想使用 XML,或者您需要自定义适配器,也可以全部以编程方式完成。

【讨论】:

  • 感谢您的回答。所以你说使用 XML 没有缺点。我对答案的最后一句话感到困惑:stackoverflow.com/questions/4029261/…@blindstuff
  • 我是说使用 XML 有个缺点。阅读我的第三段。它们只是不适用于您的用例。设计器是您可以在 Android Studio 中使用的预览,无需实际编译即可了解布局的外观。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2010-10-23
  • 1970-01-01
相关资源
最近更新 更多