在ListView 的长按点击事件中,设置了此条目不可被点击,相应的状态改变:
然后在自定义的adapter中添加回调,添加子控件的点击事件,用来改变此条item的状态。现在的问题是:如图中所示,连续的做了三个长按操作,点击第一条item中的按钮进行取消操作时,取消了第三条的item的状态,本人分析原因是 item的position 不明确,最后的一次长按操作的position是 2,恰巧是刚刚完成长按操作的item的position。不管是点击第一条还是第二条,改变的永远是刚完成操作的那一个item,请教高手怎么样解决这样的问题?
然后在自定义的adapter中添加回调,添加子控件的点击事件,用来改变此条item的状态。现在的问题是:如图中所示,连续的做了三个长按操作,点击第一条item中的按钮进行取消操作时,取消了第三条的item的状态,本人分析原因是 item的position 不明确,最后的一次长按操作的position是 2,恰巧是刚刚完成长按操作的item的position。不管是点击第一条还是第二条,改变的永远是刚完成操作的那一个item,请教高手怎么样解决这样的问题?
解决方案
40
可以在每一行再加一个标记,初始时标记都是false ,长按后按的那一行标记改为true 。 按钮按下先判断标记 false就不做任何反应就行了,达到和没焦点一样效果。