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

如何使用从共享首选项检索字符串

潘志国
2023-03-14

我的首选项活动显示了几个列表首选项。在启动此活动的类中,我监听SharedReferences上的任何更改,并使用getString(String键,String默认值)获取所选选项。

当我检索这个字符串时,我需要根据它是什么字符串执行某些操作。但是,我该如何使用字符串呢。如果是int,我可以使用switch case,但是我该怎么处理字符串呢?

除了使用if-else和String还有其他方法吗。等于比较两个字符串?或者,是否有方法检索所选位置而不是所选字符串?

共有3个答案

聂建茗
2023-03-14

如果必须用int表示位置,可以使用字符串数组和数组。二进制搜索法

private static final String[] VALUES = { "a", "b", "c", "d", "e" };

public void processSelection( String selectedValue ) {  
    int pos = Arrays.binarySearch( VALUES, selectedValue );

    switch (pos) {
    case 0:
        ... 
    break;

    default:
        break;
    }
}
经骁
2023-03-14
    int k = 0;
    String i = "Namratha"; // replace the value from Shared Preference
    try {
        k = Integer.parseInt(i);
    } catch (Exception e) {
        Log.v("Exception**********", e.getMessage());
    }

看看值是否为String,它将抛出异常并转到catch块,这样您就可以从首选项is String中理解calue。。你们有并没有相应地把东西放在挡块里面。。

否则,如果值为int,则在try block中执行操作。

司寇祺
2023-03-14

您可以将所有字符串与相应的int值一起存储哈希映射中,然后在int上设置一个开关大小写。

 类似资料:
  • 当我发送FCM消息且应用程序处于后台时,我想清除共享首选项。在方法中,我正在调用一个方法来清除它们。 我得到以下错误: 未处理的异常:MissingPluginException(在channel plugins.flatter.io/shared_首选项上找不到方法getAll的实现)

  • 对于下面的代码,我正在尝试检索共享的首选项,我认为它保存正确,但当我回到登录屏幕时,所有的数据都消失了。我需要它留在我回到这个屏幕上。所以我在个人资料页面上输入姓名、年龄和id到三个单独的行中。然后按下save按钮,然后按下action Bar上的back转到前面的页面。当我回到个人资料页面时,我的信息应该还在那里,但它没有任何帮助?

  • 非常感谢您的光临,我正在为学校开发一个应用程序,我遇到了另一个问题。该应用程序的主要思想是跟踪您的卡路里,我希望它能节省卡路里,所以当应用程序关闭时,它仍然会记住他们。我已经忙了一段时间了,现在尝试使用SavedPreferences,但我总是出现错误。我希望有人能帮我。 } 我可能做了很多明显的愚蠢的事情,但我真的弄不明白。 多谢!

  • 我正在使用共享首选项为我的应用程序存储某些值。我想看看我的手机上实际存储信息的文件。我在Eclipse上找到了很多实现这一点的方法,但我正在Android Studio上调试。我的手机有根了。我读到拥有root访问权限对读取这些类型的文件很重要。如果没有办法,那么我将查找如何通过我的程序访问信息,然后输出到日志猫。希望,虽然,我可以直接在电话上查看文件,因为它要简单得多。多谢了。

  • 更新崩溃日志:

  • 我正在创建一个番茄工作计时器应用程序。它有2项活动: 主要活动是设置时间 我已经创建了一个对象,它保存了设置的时间,我希望这些时间显示在Recents活动中的按钮中。但是,似乎没有保存数据,而是显示了包名称。