我有一个列表视图和一个自定义适配器。它完美无缺,但现在我想添加类似不可点击的标签,如果条件为真。但是如果条件为真,它还应该显示正常的列表项。这是我的问题,我不知道如何添加标签,然后是正常的项目。
我是初学者,我尝试了很多,但我没有得到它。
@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;
}
答案 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);