当前位置: 代码迷 >> Android >> listview下剔除某item后导致剩余item点击错乱
  详细解决方案

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

热度:81   发布时间:2016-04-28 01:06:03.0
listview下删除某item后导致剩余item点击错乱
/**
 * 文件删除
 * @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
------解决思路----------------------
引用:
Quote: 引用:

点击item播放那块绑定的点击事件有问题,贴下绑定点击事件的代码

已经知道哪出问题了,两个activity都用到了mp3Infos这个list,然后一个activity里删除了,另一个没删除,但源文件没了已经不能播放了,所以会错位,能不能让两个activity同时做删除?

两个activity通过handler修改list,或者发广播。
http://blog.csdn.net/jason0539/article/details/18055259
http://blog.csdn.net/jason0539/article/details/18075293
  相关解决方案