0

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

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

@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;
}
4

2 回答 2

2

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

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

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

@Override
public boolean areAllItemsEnabled() {
    return false;
}
于 2013-07-11T12:58:53.963 回答
0

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

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

将它放在您创建的“if statements”中以控制标签并将列表视图设置为显示您想要的值并相应地使其可点击或不可点击。

lv.setEnabled(false);
于 2013-07-11T13:07:20.113 回答