关于ListView更新数据的问题

syumin2009 2014-03-17 12:09:14
我使用ListView和Adapter显示了数据库的数据,想点击一个Item改变item背景颜色,然后显示删除按钮,然后点击删除按钮就删除改item。
我用onListItemClick更改Item的背景颜色,现在问题来了,后续我点击item中的R.id.click_remove去删除这个item,对应的item删除了,但是改变背景颜色的view没有删除,和下一条数据结合在一起。
我想删除按钮点击以后数据和改变了背景色的view都能消失,请教大虾这里面到底是个什么原理?有什么好的办法可以去实现,谢谢!


当点击Item的时候改变背景颜色,同时显示一个控件:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
View removeView=v.findViewById(R.id.click_remove);
if(removeView.getVisibility()==View.GONE)
{
v.setBackgroundColor(getResources().getColor(R.color.blue));
removeView.setVisibility(View.VISIBLE);
}
else
{
v.setBackgroundColor(getResources().getColor(R.color.white));
removeView.setVisibility(View.GONE);
}
}


删除操作代码:
@Override
public void remove(int which) {
HashMap<String, Object> m=(HashMap)adapter.getItem(which);
list.remove(m);
adapter.notifyDataSetChanged();
}





...全文
217 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
关于背景颜色的代码写在adapter里的getview方法里。
哎,真难 2014-03-17
  • 打赏
  • 举报
回复
那个啥,能不能把删除数据和改变颜色都写adapter里面,这样就可以绑定了呗,,,
哎,真难 2014-03-17
  • 打赏
  • 举报
回复
引用 4 楼 syumin2009 的回复:
假设adapter对应的每个view的都是不一样的,如果删除adapter数据源的一项后,使用notifyDataSetChanged(): 1、对应adapter的view数量也会减少一个么? 2、如果减少,是会删除哪个位置的view呢?
你每次加载adapter就是一个view,删一个item就是删除一个view
syumin2009 2014-03-17
  • 打赏
  • 举报
回复
假设adapter对应的每个view的都是不一样的,如果删除adapter数据源的一项后,使用notifyDataSetChanged(): 1、对应adapter的view数量也会减少一个么? 2、如果减少,是会删除哪个位置的view呢?
syumin2009 2014-03-17
  • 打赏
  • 举报
回复
能否再详细点给个思路,谢谢!

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧