ListView中的setOnItemClickListener VS setOnItemSelectedListener。

时间:2012-09-06 05:41:27

标签: android listview android-listview onclicklistener onitemclicklistener

我希望在ListView的项目上设置onClickListener,但我看到两个方法setOnItemClickListenersetOnItemSelectedListener。我在官方文件中找到了对这两者的任何合理解释。哪一个用于什么目的?

要选择一个项目,用户必须单击该项目然后使用不同的方法是什么?

5 个答案:

答案 0 :(得分:21)

就像

单击项目(单个选择)vs选择项目(用于多个选择)

答案 1 :(得分:4)

这些方法之间的差异在其描述中提供:

has been selected vs has been clicked

实际上,差异与Android术语中选择点击之间的差异相同。 选择它更像高亮,请参阅有关选择状态here的更详细说明(在android:state_selected下)。 单击与Android中的相同,并在同一链接下描述,但在android:state_pressed下。

答案 2 :(得分:3)

不一定是真的。您可以使用可通过键盘或加速度计导航的ListView。点击一个项目并不一定意味着选择它 - 也许在选择了一些东西之后你想要阻止选择,直到其他事件发生。

出于所有目的,如果您想对选择的项目作出反应,请使用setOnItemSelectedListener,但如果您想对用户点击它们作出反应,请使用setOnItemClickListener

答案 3 :(得分:0)

我认为当使用键盘的导航键或使用弹球选择列表中的项目时,会调用OnItemSelectedListener

答案 4 :(得分:-1)

我不确定,但这是我的意见。可能是错的。 setOnItemClickListener:注册在单击此AdapterView中的项目时要调用的回调。它始终返回true。

setOnItemSelectedListener:注册在单击此AdapterView中的项目时要调用的回调。返回true,同时返回false。 如果没有选择任何项目,那么它将显示没有选择任何内容。只是强制用户选择一个选项。选择一个项目,然后去下一个那样。 但是当用户忘记选择一个项目时,如果用户还记得他没有选择任何选项。