我正在使用下面的代码来禁用 ListView
项目。现在,问题是在禁用一个项目后,如果用户单击另一个项目,它会禁用当前项目,但会从禁用中删除最后一个项目。
如何预防这个问题?
int pos;
SimpleAdapter adapter = new SimpleAdapter(this, arrlist, R.layout.topicwisequestion, new String[] { "option" }, new int[] { R.id.option }) {
public boolean isEnabled(int position) {
if (position != 0) {
if (position == pos) {
return false;
} else {
return true;
}
} else {
return true;
}
}
};
lvTWOptions.setAdapter(adapter);
lvTWOptions.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
pos = position;
}
});
最佳答案
您需要维护禁用项目的列表,并查看该项目是否存在于 isEnabled 的列表中。
如下:
ArrayList<Integer> pos=new ArrayList<Integer>();
SimpleAdapter adapter = new SimpleAdapter(this, arrlist, R.layout.topicwisequestion, new String[] { "option" }, new int[] { R.id.option }) {
public boolean isEnabled(int position) {
if (position != 0) {
if (pos.contains(position)) {
return false;
} else {
return true;
}
} else {
return true;
}
}
};
lvTWOptions.setAdapter(adapter);
lvTWOptions.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
pos.add(position);
}
});
关于android - isEnabled() 与适配器 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22197898/