Android:无法调用没有参数的私有 android.net.Uri()

2023-12-23

我正在使用 Gson 将自定义模型的数组列表保存到共享首选项中

存储代码:

ArrayList<DownloadProgressDataModel> arrayList = getArrayListFromPref(downloadProgressDataModel);
        SharedPreferences.Editor prefsEditor = getSharedPreferences("APPLICATION_PREF", MODE_PRIVATE).edit();

        Gson gson = new Gson();
        String json = gson.toJson(arrayList);
        prefsEditor.putString("DownloadManagerList", json);
        prefsEditor.apply();
    }

检索中

ArrayList<DownloadProgressDataModel> arrayList;
        Gson gson = new Gson();

        SharedPreferences  mPrefs = getSharedPreferences("APPLICATION_PREF", MODE_PRIVATE);
        String json = mPrefs.getString("DownloadManagerList", "");

        if (json.isEmpty()) {
            arrayList = new ArrayList<DownloadProgressDataModel>();
        } else {
            Type uriPath = new TypeToken<ArrayList<DownloadProgressDataModel>>() {
            }.getType();
            arrayList = gson.fromJson(json, uriPath);  <------ Error line
        }

但在错误行我得到:无法实例化类 android.net.Uri

Model

public class DownloadProgressDataModel {
    private Uri uriPath;
    private long referenceId;

    public Uri getUriPath() {
        return uriPath;
    }

    public void setUriPath(Uri uriPath) {
        this.uriPath = uriPath;
    }

    public long getReferenceId() {
        return referenceId;
    }

    public void setReferenceId(long referenceId) {
        this.referenceId = referenceId;
    }
}

Uri https://developer.android.com/reference/android/net/Uri.html类构造函数是私有的,它是一个抽象类。 Gson 尝试创建一个新对象Uri使用Reflection API创建类(我们不能为抽象类创建对象)。所以简单的解决方案就是改变uriPath into String代替Uri.

 private String uriPath;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:无法调用没有参数的私有 android.net.Uri() 的相关文章

  • android:web服务图像替换为本地文件夹中的图像

    我进入了 Android 聊天应用程序的最后阶段 我在使用图像和网络服务时遇到了一些问题 因此 当我选择图像并将该图像发送到 Web 服务时 我从服务获取 URL 我如何将该网址转换为本地文件夹中的图像 我很困惑如何才能使其发挥作用 我想在
  • 删除 ios 和 android 的 PhoneGap 中的闪屏

    我正在尝试在 ios 和 android 的phonegap应用程序中完全删除启动屏幕 这navigator hide 函数仅在加载 html 页面后才起作用 但我需要在此之前删除启动屏幕 请告诉我是否有任何选项可以执行此操作 Cordov
  • 为什么Java不支持C中的clrscr这样的函数?

    我有一个问题 对很多人来说可能听起来很愚蠢 但我不能停下来把它发布在这里 因为在互联网上找不到任何东西 为什么java没有我们在C中使用的clrscr之类的函数 如果我创建了一个基于用户输入反复迭代的 java 控制台应用程序 然后如果我想
  • 如何将多种语言设置放入单个 .clang-format 文件中

    我想为 java javascript 和 c 创建一个 clang 格式 我知道如何转储单一语言的示例配置 但不知道如何合并这 3 个配置文件 有关如何将多种语言配置放入单个文件中的示例 BasedOnStyle LLVM IndentW
  • Gradle 从服务器收到状态代码 403:禁止

    由于这个错误 我无法构建我的 android 项目 Gradle 无法获取https www jitpack io com github Raizlabs DBFlow dbflow 3 1 1 dbflow 3 1 1 pom https
  • 什么是对象发布以及为什么我们需要它?

    在一次 Java 开发人员面试中 我被问到一个问题 什么是对象发布以及为什么我们需要它 我不确定我知道正确的答案 我认为对象发布是指将对象 变量 状态放入堆内存中 线程之间共享对象 变量 需要它 我对吗 如果我错了 请纠正我 我一直在搜索
  • Cordova 的内容安全策略未加载外部脚本和样式表(404 错误)

    我目前将 Cordova 的 Content Security Policy 元标记设置为 如果我运行 Android 模拟器 我会看到以下错误 拒绝加载样式表 https min css https min css 因为它违反了以下内容安
  • 以编程方式列出意图过滤器

    在 android Activity 中 有没有一种方法可以以编程方式列出它已注册的活动
  • 通过反思思考工厂设计模式

    我正在对工厂模式进行研发 我开发了下面的代码 现在我知道子类是 Dog 和 Cat 但是如果我想通过在 main 中传递类名来通过反射实现同样的事情 请告诉我该怎么做 爪哇 public abstract class Animal publ
  • 在 SQLite 中加密数据

    如何加密我的数据 就我研究的解决方案而言 有两种方法 使用android提供的算法加密数据 我使用android提供的 Cipher 来加密我的数据 但我在检索大量记录的数据时遇到问题 导致应用程序的性能显着降低 我对整个数据库进行了编码
  • JAXB 将不需要的命名空间声明附加到标签

    我正在实现 XMPP 的自制子协议 并且使用 StAX 和 JAXB 的组合来解析 编组消息 当我整理一条消息时 我最终会得到大量不需要的命名空间声明
  • 使用 int 作为 java.util.Dictionary 的类型参数

    当我尝试这样声明字典时 private Dictionary
  • 使用三十、LocalDate 获取每月的第一天和最后一天

    我有一个 LocalDate 需要获取该月的第一天和最后一天 我怎么做 eg 13 2 2014我需要得到1 2 2014 and 28 2 2014 in 本地日期 https docs oracle com javase 8 docs
  • Java swing:为 JComboBox 实现我的 Combobox 模型

    我需要我的组合框包含组织的简称 问题是我can在下拉列表中查看组织名称 但是cant实际上选择它 我的错误在哪里 public class ToComboBoxModel extends AbstractListModel implemen
  • 如何用 JSON 表示数据库中的图像

    我需要基于数据库中的 blob 创建 JSON 为了获取 blob 图像 我使用下面的代码并在 json 数组中显示之后 Statement s connection createStatement ResultSet r s execut
  • 单击按钮后更改 JPanel

    我正在为我的应用程序构建简单的 GUI 我有几个 JPanel 我想根据单击 JButton 执行的操作来显示它们 如何禁用一个 JPanel 并启用另一个 JPanel 几个细节 我有一个 JFrame 课程 我正在其中构建启动 gui
  • 在Java中解析包含multipart/form-data请求体的字符串

    问题陈述 我认为标题说明了一切 我正在寻找解析 a 的方法String包含 multipart form data HTTP 请求的正文部分 IE 字符串的内容看起来像这样 xyzseparator blah Content Disposi
  • 在 Back 上按遍历最后两个选项卡在 BottomNavigationView 中无法正常工作?

    单击后退按钮后 导航到上一个打开的选项卡 您只需遍历最后打开的两个选项卡即可退出应用程序 如何实现 我只想遍历我打开的所有选项卡 然后应用程序应该退出 这是布局
  • 多个事件分派线程

    我是 Java Swing 新手 我的问题与事件队列和调度线程相关 我读到可以有多个事件队列 每个队列应用上下文 http www java2s com Open Source Java Document 6 0 JDK Modules s
  • Toast.LENGTH_LONG 和 Toast.LENGTH_SHORT 的值是多少?

    我正在我的应用程序中打印 Toast 消息以显示通知 但我想知道 Toast LENGTH LONG 和 Toast LENGTH SHORT 我还可以使用哪些其他值 谁能告诉我这两个变量的值是多少 还有另一个问题可以回答您正在寻找的内容

随机推荐