我希望为ListView的项目设置一个onClick监听器,但我看到有两种方法:setOnItemClickListener和setOnItemSelectedListener。在官方文档中我没有找到任何解释这两个方法的合理说明。我应该使用哪个方法来实现什么目的?
当用户点击一个项目以选择它时,不同的方法有什么用途呢?
当用户点击一个项目以选择它时,不同的方法有什么用途呢?
这就像是单击项目(单选)与选择项目(用于多选)的区别。
has been selected vs has been clicked
不一定是这样的。您可以使用键盘或加速度计导航ListView。另外,点击一个项目并不意味着选择它 - 也许在选择某些内容后,您想阻止选择,直到发生其他事件。
如果您想对所选项目做出反应,请使用setOnItemSelectedListener
,但如果您想对用户单击它们做出反应,请使用setOnItemClickListener
。
我认为当使用键盘的导航键或使用轨迹球选择列表中的项目时,OnItemSelectedListener
会被调用。
我不确定,但这是我的观点。可能是错误的。 setOnItemClickListener:注册一个回调函数,在点击此AdapterView中的项目时被调用。它总是返回true。
setOnItemSelectedListener:注册一个回调函数,在点击此AdapterView中的项目时被调用。它既可以返回true,也可以返回false。 如果没有选择任何项目,则会显示未选择任何内容。它只是强制用户选择一个选项。选择一个项目并继续下一步就是这样的。 但是当用户忘记选择一个项目时,它将提醒用户他没有选择任何选项。