Android 是否有解决OnItemSelectedListener错误的方法?

Android 是否有解决OnItemSelectedListener错误的方法?,android,Android,我怀疑答案是否定的,但我想我会问 我有一个微调器,当用户做出选择时,它需要显示一个隐藏的“继续”按钮。但是,由于第一次渲染微调器时会触发OnItemSelectedListener,并且当用户重新选择已高亮显示的项目时不会再次触发,因此似乎没有办法使用此事件显示隐藏按钮(或真正执行任何操作),这取决于用户是否进行了选择 有没有其他方法可以做到这一点? AdapterView有一个ClickListener,它只是抛出一个异常,所以这是一个非启动程序。而且它似乎没有任何其他通知机制,当用户第一次与

我怀疑答案是否定的,但我想我会问

我有一个微调器,当用户做出选择时,它需要显示一个隐藏的“继续”按钮。但是,由于第一次渲染微调器时会触发OnItemSelectedListener,并且当用户重新选择已高亮显示的项目时不会再次触发,因此似乎没有办法使用此事件显示隐藏按钮(或真正执行任何操作),这取决于用户是否进行了选择

有没有其他方法可以做到这一点? AdapterView有一个ClickListener,它只是抛出一个异常,所以这是一个非启动程序。而且它似乎没有任何其他通知机制,当用户第一次与它联系,或当它关闭。。。除非我遗漏了什么?(这不是第一次了)

谢谢你的帮助

我在这里看到了关于stackoverflow的答案,它将使您能够检测到这一点


这个答案是唯一一个没有被接受的答案,我自己也没有尝试过,但试一下看看会发生什么。

我知道这本身不是一个解决方案,但从事情的声音来看,这是一个要求,用户选择允许继续的内容,对吗?如果在微调器中的第一个项目中添加一个不相关的项目,比如“请选择一个…”,会怎么样?如果将其作为默认选择项,则用户必须做出不同的选择才能继续,因此,侦听器将被触发

只是一个想法。:)

我有一个微调器,当用户做出选择时,它需要显示一个隐藏的“继续”按钮


用户总是做出选择。没有选择,就没有
微调器的概念。因此,不要隐藏“继续”按钮。

老兄,这听起来好极了。。。我当然想!,我怎么会错过这个?!但遗憾的是,当您以编程方式从侦听器下面删除适配器阵列的选定成员时,这种回调(几乎完全无用)就存在了。我想这在某些(极不可能的)情况下是有用的,但更有用的是,更常见的问题是有人重新选择预先选择的项目!我觉得我一定错过了什么!如此普遍需要的东西怎么会如此明显地缺失?!事实上,这正是我所拥有的,直到客户宣布他们不喜欢这是第一个选择,所以,我又开始画图了:)嘎,太糟糕了!:)不幸的是,我没有其他答案给你我不知道你到底在说什么。当微调器首次加载时,有一个默认选择(项目0)。用户尚未“做出”该选择。这是为他们做的。我理解,作为一名开发人员,可能很想说:“如果他们不费心选择,他们已经选择了默认值,默认情况下。。。但这不是我客户的要求。他们想强制用户实际选择一些东西。@Dredel博士:我的观点是
Spinner
不太支持客户的模型。有三种选择。1). 在适配器中插入一个额外的第一项,即“无选择”项,并检测用户何时关闭该项。2). 您的客户端适应了
微调器的行为,不再期望用户总是做出积极的选择。3). 您的UI使用了其他东西(例如,
singleChoice
ListView
),它支持没有选择的概念。最后一个选择包括您可以编写自己的小部件,以您想要的方式运行。是的。。。我想这是我的选择。但这引出了一个有趣的后续问题。有没有办法编写一个自定义侦听器来侦听微调器本机不广播的内容?例如,当它弹出打开或用户单击其中一个单选按钮时?@Dr.Dredel:“有没有办法编写一个自定义侦听器来侦听微调器本机不广播的内容?”——可能没有,除了将
Spinner
和可能的
AbsSpinner
克隆到您自己的项目中并对代码进行更改之外。总有可能你会幸运,而完成非事件处理的方法在SDK中,因此你可以覆盖它,链接到超类,并触发事件。然而,这还远远不能确定。我们可以使用自定义密钥linster spiner.setOnKeyListener(l)做些什么吗?