Spinner和ListView有什么区别?

6

两者都有数据源(或适配器)。我认为Spinner可以以下拉列表的形式展示,而ListView可以直接在视图上显示所有数据。它们的数据都来自于一个ArrayList。它们可以是String类型,像这样:

<string-array name="Cities">
    <item >Beijing</item>
    <item >Tokoy</item>
    <item >New York</item>
    <item >London</item>
    <item >Paris</item>
    <item >Berlin</item>
    <item >Moscow</item>
    <item >Hongkong</item>
</string-array>

它们之间有什么不同?
1个回答

5

来自SpinnerList View文档:

Spinner提供了一种快速选择集合中一个数值的方法。在默认状态下,Spinner会显示其当前已选数值。触摸Spinner将显示带有所有其他可用数值的下拉菜单,用户可以从中选择新值。

ListView是一个视图组,用于显示可滚动项列表。列表项使用适配器自动插入到列表中,该适配器从源(例如数组或数据库查询)提取内容,并将每个项结果转换为放置在列表中的视图。

尽管它们都是从相同的底层数据类型实现的,但它们之间的区别在于您之前提到的方式——它们的外观和呈现数据的方式。如果您的应用程序需要一种只能从集合中选择一个值的方式,则使用Spinner,因为它们是为此而设计的。如果您只想显示数据列表,则使用ListView。在这种情况下不会使用Spinner,因为Spinner意味着必须选择一个,而实际上您不想选择任何内容。


就是这样。非常感谢。可滚动的项目与下拉菜单有什么区别?它们似乎没有什么不同。它们共享相同的数据类型。 - learner1
@ilovepgs,我在等待正确或优秀的答案。一旦我认为它是一个极好的答案,我就会选择它并接受它。不过,我已经给你投了一分。 - learner1
如果您只想从一组中选择一个值,则使用微调框,因为这是它们的设计目的。如果您只想显示数据列表,则使用ListView。说实话,ListView也可以胜任。反之亦然,既然您急切地希望获得可访问的答案,我认为我可以给您。但是我希望能够得到更多关于这个问题的答案。 - learner1
@learner1 列表视图可以完成任务,但根据您设计的内容可能不需要使用它们。这个想法是为了让您作为开发人员在设计应用程序时拥有自由度。它们与下拉框不完全相同,因为下拉框带有初始化值并且不支持项目单击事件。 - ilovepjs
尽管它们支持点击事件,但仍需确认。新年快乐。 - learner1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接