ListView ArrayAdapter中的非活动链接

时间:2012-09-05 22:37:12

标签: android android-listview

我在ListView对象中有大约2500个项目的列表。我希望其中一些项目可见,但灰色。对于那些不显示灰色的活动启动一个活动(在我的例子中,这是一个AlertDialog)。我想(例如)前500个项目是活跃的并且具有通常的行为,而其他项目是灰色的并且点击它们什么都不做。

我正在尝试创建的是ListView应用程序的试用版,因此用户只能访问列表中的某些项目以进行演示。

最简单的方法是什么?我只能想到有两个相互追加的列表(第一个是活动的,第二个不是)。理想情况下,我实际上会有交叉列表,这样(例如)每三个项目都是活动的而其他项目不是,但我会选择在同一个列表上运行的两个单独的组,如果这太复杂了。

1 个答案:

答案 0 :(得分:0)

只需扩展您正在使用的任何适配器,并在getView()

中添加此简单检查
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = super.getView(position, convertView, parent);

    if(position < 500) {
        view.setClickable(false);
        view.setEnabled(true);
    }
    else {
        view.setClickable(true);
        view.setEnabled(false);
    }

    return view;
}

我做了你的简单检查(如果行在前500行)然后改变了几个特征。

  • setEnabled()将文字变为灰色false
  • setClickable()true阻止ListView接收TouchEvent时。

希望有所帮助!