Android GridView将某些项设置为nonClickable

时间:2012-06-14 15:31:03

标签: android gridview android-gridview

我正在使用GridView实现自定义日历。 对于这个日历,我有3种视图类型,{DAY,TITLE,BLANK}

有没有办法让GridView中的某些项目无法点击?

我要避免的是对于不可点击的项目的新闻状态动画。用户按下它们就可以了,我可以认识到它不是我的onItemClickListener()中的有效视图。这纯粹是出于用户界面的目的。

3 个答案:

答案 0 :(得分:4)

我找到了解决方案。不知道我为什么不首先搜索ListViews。

您需要覆盖isEnabled()函数 返回false将使其无法点击。 True将保持可点击状态。

@Override
public boolean isEnabled(int position) {
    switch(getItemViewType(position)) {
        case CellTypes.BLANK:
        case CellTypes.TITLE:
        default :
            return false;
        case CellTypes.DAY:
            return true;
    }
}

答案 1 :(得分:0)

在GridView的适配器中,实现get()方法之一以返回对被单击对象的引用。我假设您的适配器包装了“日历”对象的列表。

在GridView的onItemClickListener中,在适配器上调用get(index)或get(id)以获取对被单击对象的引用。检查它的类型以查看它是否是您不希望被点击的类型,并在执行通常在单击可点击项目时调用的逻辑时返回。

答案 2 :(得分:-1)

在XML中:android:clickable =“false”,在代码中:setClickable(false);