Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView如何清除所选内容_Android_Listview_Android Listview_Textview_Selector - Fatal编程技术网

Android ListView如何清除所选内容

Android ListView如何清除所选内容,android,listview,android-listview,textview,selector,Android,Listview,Android Listview,Textview,Selector,因此,我在列表视图上有一个选择器,其中每行有2个文本视图,每个文本视图都有另一个选择器,与列表上的选择器同步(相同状态下的不同绘图选项:激活和按下)。我的逻辑是,当我在列表视图中检测到一个项目时,我会临时更改该视图的背景色,500毫秒后将其设置回透明 但是,当它重置时,有时子视图的按下状态设置为true,有时视图的bg不正确,但内部的文本视图始终对应于其激活的可绘图项,即使按下状态为false 我似乎不知道如何纠正这种行为。非常感谢您的帮助,这件事快把我逼疯了 我尝试过清除选项,但没有帮助,我甚

因此,我在列表视图上有一个选择器,其中每行有2个
文本视图
,每个文本视图都有另一个选择器,与列表上的选择器同步(相同状态下的不同绘图选项:
激活
按下
)。我的逻辑是,当我在列表视图中检测到一个项目时,我会临时更改该视图的背景色,500毫秒后将其设置回透明

但是,当它重置时,有时子视图的按下状态设置为true,有时视图的bg不正确,但内部的
文本视图始终对应于其
激活的可绘图项
,即使按下状态为false

我似乎不知道如何纠正这种行为。非常感谢您的帮助,这件事快把我逼疯了


我尝试过清除选项,但没有帮助,我甚至尝试过显式强制子视图将其激活状态设置为false,并按下状态,这也不会起作用。我真的没有选择了。

因此,在花了大量时间分析了
AbsListView
中的幕后情况后,我找到了解决此问题的方法。首先,关于导致这种情况的问题,
AbsListView
有8种运动检测状态,即-

  • 触摸屏模式休息(-1)
  • 触摸模式(0)
  • 触摸模式轻触(1)
  • 触摸模式完成等待(2)
  • 触摸模式滚动(3)
  • 触控模式(4)
  • 触摸模式超视距(5)
  • 触摸模式溢出(6)
  • ACTION\u UP
    事件被发送到列表视图时,其
    touchMode
    不知何故卡在(2)和(5)之间,导致其在
    motionView(子视图)
    上记住其按下的状态,这导致了不正确的结果,即即使在运动完成时按下的状态仍然可见

    我无法弄清楚为什么会出现这个问题,因为我总是将事件从我的
    TouchListener
    发送到
    ListView

    无论如何,现在这类案件的解决办法是:


    当我的
    手势检测器
    识别出一个手势时,它将返回true,所以我所要做的就是当
    手势检测器
    返回true时,只需将
    动作事件
    的动作更改为
    动作
    并将其发送到
    列表视图
    中,问题就解决了。

    您是否尝试过
    列表视图.clearChoices();
    ?@Machado是的,这是我尝试的第一件事。你尝试在列表视图上发布更新吗?类似于getListView().post(new Runnable(){@Override public void run(){//do stuff here});@RamandeepNanda nope也不起作用,因为当活动恢复时,它会在子视图上再次绘制选择器(除非我滚动列表)