Java 在录制应用程序的“循环”视图中从存储器中删除音频文件

Java 在录制应用程序的“循环”视图中从存储器中删除音频文件,java,android,android-studio,Java,Android,Android Studio,我已经制作了一个录制应用程序,其中我在循环视图中有删除按钮。但当我点击删除按钮时,只有删除列表项而不是从存储中删除。 当我点击recycleview中的删除按钮时,如何从存储器中删除音频文件 录音适配器 package com.elevenzon.mediarecorder; 导入android.content.Context; 导入android.net.Uri; 导入android.support.v7.widget.RecyclerView; 导入android.view.LayoutI

我已经制作了一个录制应用程序,其中我在循环视图中有删除按钮。但当我点击删除按钮时,只有删除列表项而不是从存储中删除。 当我点击recycleview中的删除按钮时,如何从存储器中删除音频文件

录音适配器

package com.elevenzon.mediarecorder;
导入android.content.Context;
导入android.net.Uri;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageButton;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.io.File;
导入java.nio.file.SecureDirectoryStream;
导入java.util.ArrayList;
公共类RecordingAdapter扩展了RecyclerView.Adapter{
语境;
ArrayList音频ArrayList;
公共OnItemClickListener OnItemClickListener;
公共录制适配器(上下文上下文,ArrayList audioArrayList){
this.context=上下文;
this.audioArrayList=audioArrayList;
}
@凌驾
public RecordingsAdapter.viewHolder onCreateViewHolder(视图组视图组,int i){
视图=LayoutFlater.from(上下文)。充气(R.layout.U列表,视图组,false);
返回新的viewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(最终记录Adapter.viewHolder holder,最终int i){
holder.title.setText(audioArrayList.get(i.getTitle());
holder.date.setText(audioArrayList.get(i.getDate());
holder.duration.setText(audioArrayList.get(i.getDuration());
holder.mRemoveButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
ModelRecordings ModelRecordings=audioArrayList.get(i);
audioArrayList.remove(i);
(i)删去第(i)款;
notifyItemRangeChanged(i,audioArrayList.size());
Toast.makeText(context.getApplicationContext(),“已删除所选项目”,Toast.LENGTH\u LONG.show();
}
});
}
@凌驾
public int getItemCount(){
返回audioArrayList.size();
}
公共类viewHolder扩展了RecyclerView.viewHolder{
文本视图标题、日期、持续时间;
图像按钮mRemoveButton;
公共视图持有者(视图项视图){
超级(项目视图);
title=(TextView)itemView.findViewById(R.id.title);
date=(TextView)itemView.findViewById(R.id.date);
duration=(TextView)itemView.findViewById(R.id.duration);
mRemoveButton=(ImageButton)itemView.findViewById(R.id.ib_-remove);
itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
onItemClickListener.onItemClick(getAdapterPosition(),v);
}
});
}
}
公共无效setOnItemClickListener(OnItemClickListener OnItemClickListener){
this.onItemClickListener=onItemClickListener;
}
公共接口侦听器{
void onite mclick(内部位置,视图v);
}

}
要从存储器中删除文件,必须使用
文件
类。 像这样:

File file = new File(path_to_the_folder,filename_with_format);
if (file.exists()){
    file.delete();
}
还要确保您已在清单中授予WRITE_EXTERNAL_存储

编辑
您正在从arraylist中删除元素并通知您的适配器。

请告诉我,在我的例子中,我应该在“path_to_the_folder”和“filename_with_format”中写些什么。path_to_the_folder是保存音频的文件夹路径,我想您正在
环境中保存文件。getExternalStorageDirectory()+“/11zon”
感谢您的回复Umer Farooq。但我需要不同的解决方案,因为它不起作用。请给我提出不同的建议