listview下删除某item后导致剩余item点击错乱

moetoby 2015-05-06 03:45:22
/**
* 文件删除
* @param position
*/
private void deleteMusicFile(int position) {
File file = new File(Mp3Info.get(position).getUrl());
Log.d("delete", "delete " + Mp3Info.get(position).getUrl());
file.delete();
}

/**
* 使用MediaScannerReceiver清除MediaStore缓存
*/
public void allScan() {
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}

@Override
public void onClick(DialogInterface arg0, int arg1) {
//删除文件操作
deleteMusicFile(position);
Mp3Info.remove(position);
adapter.notifyDataSetChanged();
allScan();
ToastShow.getToast(HomeActivity.this, "已删除").show();
}
通过以上代码确实实现了音乐文件的删除,也同时从listview里删除了条目,但剩余item的点击会产生错乱。例如:
aa aa
bb <--删除bb后listview变为右边 cc
cc dd <--点击这项会播放cc
dd ee <--点击这项会播放dd
ee
...全文
274 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
生如夏花cch 2015-05-08
  • 打赏
  • 举报
回复
引用 5 楼 moetoby 的回复:
[quote=引用 1 楼 s715575807 的回复:] 点击item播放那块绑定的点击事件有问题,贴下绑定点击事件的代码
已经知道哪出问题了,两个activity都用到了mp3Infos这个list,然后一个activity里删除了,另一个没删除,但源文件没了已经不能播放了,所以会错位,能不能让两个activity同时做删除?[/quote] 最粗暴的方法是在另一个activity写个静态方法
s_wenze 2015-05-07
  • 打赏
  • 举报
回复
引用 5 楼 moetoby 的回复:
[quote=引用 1 楼 s715575807 的回复:] 点击item播放那块绑定的点击事件有问题,贴下绑定点击事件的代码
已经知道哪出问题了,两个activity都用到了mp3Infos这个list,然后一个activity里删除了,另一个没删除,但源文件没了已经不能播放了,所以会错位,能不能让两个activity同时做删除?[/quote] 两个activity通过handler修改list,或者发广播。 http://blog.csdn.net/jason0539/article/details/18055259 http://blog.csdn.net/jason0539/article/details/18075293
moetoby 2015-05-07
  • 打赏
  • 举报
回复
引用 6 楼 s715575807 的回复:
[quote=引用 5 楼 moetoby 的回复:] [quote=引用 1 楼 s715575807 的回复:] 点击item播放那块绑定的点击事件有问题,贴下绑定点击事件的代码
已经知道哪出问题了,两个activity都用到了mp3Infos这个list,然后一个activity里删除了,另一个没删除,但源文件没了已经不能播放了,所以会错位,能不能让两个activity同时做删除?[/quote] 两个activity通过handler修改list,或者发广播。 http://blog.csdn.net/jason0539/article/details/18055259 http://blog.csdn.net/jason0539/article/details/18075293[/quote] 非常感谢!
moetoby 2015-05-06
  • 打赏
  • 举报
回复
引用 1 楼 s715575807 的回复:
点击item播放那块绑定的点击事件有问题,贴下绑定点击事件的代码
已经知道哪出问题了,两个activity都用到了mp3Infos这个list,然后一个activity里删除了,另一个没删除,但源文件没了已经不能播放了,所以会错位,能不能让两个activity同时做删除?
moetoby 2015-05-06
  • 打赏
  • 举报
回复
引用 2 楼 li352558693 的回复:
楼主贴下代码看看
贴哪块
moetoby 2015-05-06
  • 打赏
  • 举报
回复
引用 1 楼 s715575807 的回复:
点击item播放那块绑定的点击事件有问题,贴下绑定点击事件的代码
/** * 播放选中歌曲 * @param position */ public void playItemMusic(int position) { listPosition = position; // 获取列表点击的位置 Log.d("position---->", "Position " + listPosition); Intent intent = new Intent(); intent.putExtra("listPosition", listPosition); setResult(RESULT_OK, intent); finish(); }
雪月弦歌 2015-05-06
  • 打赏
  • 举报
回复
楼主贴下代码看看
s_wenze 2015-05-06
  • 打赏
  • 举报
回复
点击item播放那块绑定的点击事件有问题,贴下绑定点击事件的代码

80,349

社区成员

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

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