如何禁用自动完成项目?

4
我希望所有“无法使用”的项目都被禁用,即当我点击它们时,下拉菜单应该保持不变。
我尝试将convertViewclickable属性设置为false,但这并没有起到作用。 enter image description here

你不能在你的"OnItemClickListener"中添加一个条件吗? - Damien R.
我试过了,但是我无法避免下拉框消失。 - luckyNinja
我假设你已经为下拉列表定义了适配器。在适配器内,通过自定义getView和getDropdownView方法来实现你的行为。 - DroidBender
是的,我有一个自定义适配器,所以对于不可用的项目,我有不同的视图,但是所有项目的onClick行为是相同的。 - luckyNinja
1个回答

8
在您的适配器的`getView()`方法中进行检查。
if (text.equals("not available")) {
    convertView.setEnabled(false);
} else {
    convertView.setEnabled(true);
}

在你的适配器中重写。
public boolean areAllItemsEnabled() {
    return false;
}

public boolean isEnabled(int position) {
    // return false if position == position you want to disable
}

请在此处查看:Android ListView子视图setEnabled()和setClickable()无效的解决方法


当在列表项的视图上调用setEnabled()时,不会启用或禁用列表项。 - Mark Buikema
我尝试了第一个代码块,然后是第二个代码块,但如果将它们放在一起,它们似乎不应该工作。谢谢! - RexSplode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接