我希望在ListView的项目上设置onClickListener,但我看到两个方法setOnItemClickListener
和setOnItemSelectedListener
。我在官方文件中找到了对这两者的任何合理解释。哪一个用于什么目的?
要选择一个项目,用户必须单击该项目然后使用不同的方法是什么?
答案 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。 如果没有选择任何项目,那么它将显示没有选择任何内容。只是强制用户选择一个选项。选择一个项目,然后去下一个那样。 但是当用户忘记选择一个项目时,如果用户还记得他没有选择任何选项。