【发布时间】:2014-08-09 10:53:02
【问题描述】:
在我的 android 应用程序中,我试图将列表项删除为 -
dla.remove(itemselected);
Toast.makeText(getApplicationContext(), "Pos is : "+pos+": Item is "+itemselected.getTitle(), Toast.LENGTH_SHORT).show();
dla.notifyDataSetChanged();
dla.notifyDataSetInvalidated();
适配器getView()
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v=convertView;
LayoutInflater inflater=(LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(v==null){
v=inflater.inflate(R.layout.downloaditem, parent,false);
title=(TextView) v.findViewById(R.id.downTitle);
status =(TextView) v.findViewById(R.id.downStatus);
pb=(ProgressBar) v.findViewById(R.id.downprogressBar);
title.setText(list.get(position).getTitle());
status.setText(UnitConverter.convert(list.get(position).getDownloaded())+"/"+UnitConverter.convert(list.get(position).getFileSize())+" ("+
list.get(position).getPercentage()+"%)");
pb.setProgress(list.get(position).getPercentage());
return v;
}
else{
return v;
}
}
我在删除一个项目后记录了ListView,该项目被删除但没有正确更新view,我的意思是只删除了ListView 中最后一个项目。
例如。如果我在第 0 个索引处删除项目,它会被删除,但只删除最后一个项目。我会犯什么错误?
【问题讨论】:
-
尝试重置适配器,而不是调用
notifyDataSetChanged()。也许它应该工作。 -
你能告诉我
pos来自哪里 -
@FlatEric
AdapterContextMenuInfo menuinfo=(AdapterContextMenuInfo) item.getMenuInfo(); int pos=menuinfo.position; -
@T-Rush 我也尝试重新创建也不起作用的适配器
-
可能
itemselected与位置pos的项目不同。你可以试试dla.remove(dla.getItem(pos));