当前位置: 首页 > 知识库问答 >
问题:

单击RecyclerView中的Delete按钮时获取空点异常

危烨煜
2023-03-14
 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();
            }
        }

 }
});

单击Delete按钮时,应用程序崩溃。

2020-03-01 22:50:55.461 168 00-16800/com.solutions.rsaggarwal E/AndroidRuntime:致命异常:主进程:com.solutions.rsaggarwal,PID:16800 java.lang.NullPointerException:尝试在com.solutions.rsaggarwal.MyAdapter$2处的空对象引用上调用虚拟方法“java.io.file Android.Content.Context.GetFilesDir()”。onClick(myAdapter.java:70)在Android.View.View.PerformClick

共有1个答案

朱俭
2023-03-14

您在适配器类中作为参数传递的context似乎为null。作为另一种选择,您可以使用附加到ItemView的上下文,如下所示。

  Context context = myViewHolder.itemView.getContext();
  File file = new File(context.getFilesDir(), pdfName);
  try {
        if (file.exists())
                 file.delete();
         Log.e("file","file"+file.getAbsolutePath());
       } catch (Exception e) {
                e.printStackTrace();
       }
    }
 类似资料:
  • 我有4个图像作为按钮,当选择正确的按钮时,会出现一个工作正常的箭头按钮。 我的问题是,我试图更改每个按钮的后台资源以在单击此箭头时进行更改,但我在该行得到一个空指针异常: 我已经在java onCreate中声明了nextArrow按钮- 类别: 日志: XML: 我错过了什么明显的东西吗?

  • 这是我的listview点击事件: 这是我的按钮点击事件: 现在,我需要获得单击的listview项的位置。我已经声明了全局位置,但这总是给我位置1。 有人能告诉我怎么得到这个职位吗?

  • 我有一个RecyclerView列表,其中显示了一个包含一些文本视图和按钮的项目。我已经将每个项目的按钮链接到特定功能。碎片看起来像这样。 这两个按钮(红色和蓝色)根据用户的状态更改其功能。e、 g.当用户未被批准时,蓝色按钮将显示“激活帐户”,红色按钮将显示“删除请求”,每个按钮都有自己的功能。按钮的所有功能都按预期工作,但有一个小问题。当我点击这两个按钮中的一个时,它有时不会注册点击。我认为这

  • 我看到下面的错误日志从崩溃报告谷歌播放。这是发生在点击按钮。我不知道是什么触发了这个问题。请让我知道,如果有任何一个面临类似的问题。谢谢

  • 一直试图点击网站上的单选按钮,但无济于事。 一直试图点击单选按钮和标签,但硒一直抛出没有这样的元素错误,我在这个阶段有点沮丧。 在实际网站上可能更容易看到: https://www.theaa.ie/car-insurance/journey/getting-started 它在输入电子邮件后的页面上。试图让一些测试用例运行,但这些单选按钮不想被点击。

  • 问题内容: 如何找到被点击的按钮的ID? 问题答案: 您需要发送ID作为功能参数。像这样做: 这将发送ID 作为您可以在您的函数中使用。