如何编写代码来为android中的数组创建共享首选项?

2023-12-29

我正在工作android。我想在我的代码中进行共享首选项,但我不知道如何对数组进行共享首选项以及如何在另一个类中使用该共享首选项的值。

这是我在一个 for 循环中的数组:- urls[i]=sitesList.getWebsite().get(i);

我想对此 urls[] 数组进行共享首选项。请建议我如何编写代码来声明共享首选项以及如何检索该共享首选项的值?

先感谢您。


putStringSet and getStringSet仅在 API 11 中可用。

或者,您可以使用 JSON 序列化数组,如下所示:

public static void setStringArrayPref(Context context, String key, ArrayList<String> values) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = prefs.edit();
    JSONArray a = new JSONArray();
    for (int i = 0; i < values.size(); i++) {
        a.put(values.get(i));
    }
    if (!values.isEmpty()) {
        editor.putString(key, a.toString());
    } else {
        editor.putString(key, null);
    }
    editor.commit();
}

public static ArrayList<String> getStringArrayPref(Context context, String key) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    String json = prefs.getString(key, null);
    ArrayList<String> urls = new ArrayList<String>();
    if (json != null) {
        try {
            JSONArray a = new JSONArray(json);
            for (int i = 0; i < a.length(); i++) {
                String url = a.optString(i);
                urls.add(url);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    return urls;
}

像这样设置和检索您的 URL:

// store preference
ArrayList<String> list = new ArrayList<String>(Arrays.asList(urls));
setStringArrayPref(this, "urls", list);

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

如何编写代码来为android中的数组创建共享首选项? 的相关文章

随机推荐

  • CUDA - nvidia 驱动程序在运行时崩溃

    我在 CUDA 中运行一个具有 N 次反弹的光线追踪器 每条光线将反弹 N 次 我使用 openGL 查看结果 一旦 N 很小 1 4 一切都会很好 一旦我使 N 个大 10 每个线程 大约 800x1000 必须执行大量计算 当屏幕变黑然
  • Python:使用.Cer文件打开获取公钥然后进行验证

    我有一个包含公钥的 cer 文件 我需要使用这个文件来验证相应私钥签名的签名 我有签名和公钥 我需要验证签名 我得到的结果是假的 下面是代码 def verify sign public key loc signature data Ver
  • 所选节点没有表单祖先 - Mink 错误

    我正在尝试使用 Mink 和 Goutte 驱动程序对我的 Magento 安装进行测试 当我尝试使用时失败click or press 按钮上的功能 Code page this gt getSession gt getPage chec
  • 测试或开发时从 Android 应用程序禁用 GoogleAnalytics

    我在 Android 应用程序中使用 EasyTracker 当应用程序处于 开发 或 测试 模式时 我需要一种方法来禁用分析跟踪 我在常量文件中有一个标志来区分 最好的方法是什么 Thanks 我认为使用 Analytics 版本 4 执
  • 使用 s3distcp 将文件从 amazon s3 复制到 hdfs 失败

    我正在尝试使用 EMR 中的工作流程将文件从 s3 复制到 hdfs 当我运行以下命令时 作业流程成功启动 但在尝试将文件复制到 HDFS 时出现错误 我是否需要设置任何输入文件权限 Command elastic mapreduce jo
  • iOS Swift:无法检索 UIwebView 中加载的当前 url

    我正在 webview 应用程序 iOS swift 中工作 我面临的问题是我想获取 webview 显示的每个网址 根据网址 我必须执行一些 if else 检查 但我无法获取 webview 加载的 url webview 显示良好的结
  • Windows Phone 7.1 SDK 警报

    我正在尝试使用 Windows Phone 7 1 SDK 中的新 Alarm 类创建警报 我可以让它工作 但闹钟似乎没有在我设置的时间响起 Alarm alarm new Alarm MyAlarm Content Alarm Begin
  • 在 Rails 3 中使用标记国际化整个文本

    例如 Rails 3 中的服务条款文档国际化的最佳实践是什么 我可以想到两个选择 为每个区域设置创建一个部分 并根据当前用户的区域设置选择要加载的部分 li li li li 这些似乎都不是一个好的解决方案 有任何想法吗 有一些解决方案 但
  • jQuery 切换显示/隐藏多个 DIV ID

    CODE document ready function toggle hide show click function toggle toggle slow this attr src images checkmark2 jpg func
  • 特定键上的部分<>

    我有一个描述 mongodb 数据库数据的打字稿界面 例如 interface Foo id string name string fish id string name string 我有一种方法可以构建要插入数据库的数据 例如 func
  • 如何在 Swift 中构造多个 HTTP 请求?

    我对 Swift 和编程都很陌生 我非常热衷于以正确的方式学习 因此 任何额外的提示或评论总是值得赞赏的 我正在向 api 发出 HTTP 请求 效果很好 问题是每个请求最多只能有 100 个结果 我可以设置一个可选的偏移量和限制 如果我给
  • 如何在 MATLAB 中去除图像中的高斯噪声?

    我正在尝试从图像中去除高斯噪声 我自己使用以下方法添加了噪音 nImg imnoise img gaussian 0 0 01 I now need to remove the noise using my own filter or at
  • 按 SPARQL 中的日期范围过滤

    我正在使用 Jena 的 SPARQL 引擎 并尝试编写一个查询来过滤日期范围 因为我需要在固定日期之后查找属性的值 我的日期属性采用以下格式 Fri May 23 10 20 13 IST 2014 如何编写 SPARQL 查询来获取日期
  • 为什么要使用 getter 和 setter 方法来设置类属性? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么要使用 getter 和 setter https stackoverflow com questions 1568091 why use getters and setters 在 C ASP
  • Protractor - 如何为不同的测试重用相同的规范文件

    在我的量角器中conf js文件 我想多次重复使用相同的规范文件 然而 这似乎不可能 一些背景 我们从 JSON 文件中读取测试用例 启动报告 然后测试网格结果和各种 DOM 元素 所有报告都具有相同的格式 主要差异在于报告标题 数据列 实
  • Swift 中如何检查字符串是否包含字母? [复制]

    这个问题在这里已经有答案了 我正在尝试检查特定字符串是否包含字母 到目前为止我遇到过NSCharacterSet letterCharacterSet 作为一组字母 但我无法检查该组中的字符是否在给定的字符串中 当我使用此代码时 我收到一条
  • 无法访问 Blazor Server 3.0 中已处置的对象

    我有一个 Blazor 页面 其中包含以下表单提交按钮
  • 如何在詹金斯管道中抛出异常?

    我已经使用 try catch 块处理了 Jenkins 管道步骤 我想在某些情况下手动抛出异常 但它显示以下错误 org jenkinsci plugins scriptsecurity sandbox RejectedAccessExc
  • Silverlight 是否比 JavaScript 具有性能优势?

    在最近一次有关 Silverlight 的讨论中 提到了速度的优势 Silverlight 的论点是 它在浏览器中的性能比 Javascript 更好 因为它是编译 和托管 代码 然后有人指出 这一优势仅适用于 IE 因为与 Chrome
  • 如何编写代码来为android中的数组创建共享首选项?

    我正在工作android 我想在我的代码中进行共享首选项 但我不知道如何对数组进行共享首选项以及如何在另一个类中使用该共享首选项的值 这是我在一个 for 循环中的数组 urls i sitesList getWebsite get i 我