删除录音文件 广播通知更新媒体库

这篇博客讲述了在Android录音管理APP中实现长按删除录音文件时遇到的ListView优化问题及解决方案。当删除一屏后的录音文件时,由于ListView的优化机制,需要通过Adapter获取正确的文件路径。此外,还讨论了删除文件后更新媒体数据库的重要性,以及采用广播通知的方式实现媒体库的刷新。
摘要由CSDN通过智能技术生成

好久没更新博客了,今天写一篇 我最近遇到的问题,以及我是如何解决的的方法。

概要:本软件主要是运用于展讯平台手机的预装录音管理APP,基本大的功能已经写好了,之前在做的是在录音列表里添加长按删除录音文件、文件夹,本以为很简单,可以很快搞定,没想到搞了整整一个星期,真是走了很多弯路尴尬,好了不多说,先上“菜”。

 public void scanFiles(String path, boolean clear) {

				Log.d(TAG, "zhangcl: scanFiles(): path = " + path);
		
        if(clear) {
					list.clear();
        }
		
        File dir = new File(path);
        File[] subFiles = dir.listFiles();

				int loopindex = 0;
		
        if(subFiles != null){				
            for(File f:subFiles){
	               list.add(f);
	        	}
        }
	
        this.notifyDataSetChanged();
        currPath = path;
    }
CallRecordAdter的getview方法我就不贴出来了,也没什么好看的,这个方法主要是根据传入的路径遍历文件夹,添加到list中,这个方法的2个参数,第一个是要遍历的路径,第二个是判断是否要清空原本的list。

 List.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				alertDialogDelete(arg2);
				return true;
			}
		});

我先说下思路吧,思路很简单,"不就是一个长按删除的功能嘛",首先onItemLongClick已经提供了一个arg2,这个arg2其实就是postion,这个postion就是你长按的是listview中具体哪个item的下标,有了这个下标,你就可以拿到用户点击listview的item的值,之后判断是否为文件,如果是文件,通过File[] childFiles = file.listFiles();通过for循环遍历childFiles[i].getName().equals(item的值),如果相等就删除,如果是文件夹,判断文件夹下是否有文件,如果没有,直接删除。如果有文件的话,通过迭代遍历删除。哦 千万不要忘记了,更新媒体数据库。<pre name="code" class="java"> private  void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值