Android ListView:添加不可点击的标签

时间:2013-07-11 12:48:41

标签: android listview layout-inflater

我有一个列表视图和一个自定义适配器。它完美无缺,但现在我想添加类似不可点击的标签,如果条件为真。但是如果条件为真,它还应该显示正常的列表项。这是我的问题,我不知道如何添加标签,然后是正常的项目。

我是初学者,我尝试了很多,但我没有得到它。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView;
    if (position == 3){
        rowView = inflater.inflate(R.layout.event_date, parent, false);
        TextView date = (TextView) rowView.findViewById(R.id.event_date);
        // set text
    } else {
        rowView = inflater.inflate(R.layout.events_list, parent, false);
        TextView title = (TextView) rowView.findViewById(R.id.event_title);
        // set text
    }

    return rowView;
}

2 个答案:

答案 0 :(得分:2)

BaseAdapter有一个名为isEnabled()的方法,您可以覆盖它。您可以使用它来指定特定位置是否可点击。

@Override
public boolean isEnabled(int position) {
    if (position == 3) {
        return false;
    } else {
        return true;
    }
}

您还需要声明并非使用areAllItemsEnabled()启用所有项目。

@Override
public boolean areAllItemsEnabled() {
    return false;
}

答案 1 :(得分:0)

如果您只需要在满足特定条件时在列表旁边显示标签,您就可以在页面的XML中创建标签并设置其可见性。

例如Label a = findViewById(R.id.labela); a.setVisibility(View.GONE);

将此信息放入您创建的“if语句”中以控制标签,并将listview设置为显示所需的值,并使其可单击或不可点击。

lv.setEnabled(false);