【发布时间】:2020-06-14 02:27:57
【问题描述】:
public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, final int i) {
myViewHolder.mName.setText(downModels.get(i).getName());
myViewHolder.mDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DownloadTask();
}
});
myViewHolder.mDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String pdfName = downModels.get(i).getName();
if(pdfName != null) {
pdfName = pdfName.replace("", "")+".pdf";
File file = new File(context.getFilesDir(), pdfName);
try {
if (file.exists())
file.delete();
Log.e("file","file"+file.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
单击删除按钮时,应用程序崩溃。
2020-03-01 22:50:55.461 16800-16800/com.solutions.rsaggarwal E/AndroidRuntime:致命异常: 主进程:com.solutions.rsaggarwal,PID:16800 java.lang.NullPointerException:尝试调用虚拟方法'java.io.File android.content.Context.getFilesDir()' 在空对象引用上 在 com.solutions.rsaggarwal.MyAdapter$2.onClick(MyAdapter.java:70) 在 android.view.View.performClick(View.java:7125) 在 android.view.View.performClickInternal(View.java:7102) 在 android.view.View.access$3500(View.java:801) 在 android.view.View$PerformClick.run(View.java:27336) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
【问题讨论】:
-
context是什么? -
确认您是否在适配器的recyclerview 项目中设置了正确的findviewbyId 按钮
-
上下文上下文;我设置了正确的按钮,
-
您是否在
MyAdapter构造函数中从您的活动/片段设置上下文。 -
我是从片段中设置的
标签: java android delete-file