我想让Android ListView
暂时无法点击,直到我的AysncTask
完成。
所以我用了
lv.setClickable(false);
但它不起作用。 ListView
仍然需要点击次数。需要帮助。
答案 0 :(得分:4)
对我有用的是在我的列表项的XML中设置两个属性。我设置了clickable="false"
和focusable="true"
。所以我的每个列表项都在膨胀一个类似于这个的XML文件:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="true" >
<!-- Children here -->
</LinearLayout>
我不确定为什么会这样,虽然这是我的猜测:
仅使用clickable属性不起作用,因为虽然LinearLayout不可点击,但其中的子项仍然是。然后孩子们获得点击事件但不使用它并将其转发到LinearLayout。
通过使LinearLayout具有焦点,它现在将获取click事件,然后将其删除,因为它不可点击。
希望这会有所帮助。如果有人知道为什么这种方法有效,请加入。
答案 1 :(得分:1)
请改为尝试:
lv.setEnabled(false);
编辑:好抱歉我的错。
我认为问题在于它不是您单击的ListView,而是View表示ListView中的每个项目。所以试试这个:
View itemView = lv.findViewTraversal(id_of_your_view);
itemView.setClickable(false);
我希望这有效。
答案 2 :(得分:0)
setFocusable
/ setEnabled
种方法? if(!mWorking){
mWorking = true;
//do the job...
}
我希望这会对你有所帮助