我的首选项活动显示了几个列表首选项。在启动此活动的类中,我监听SharedReferences上的任何更改,并使用getString(String键,String默认值)获取所选选项。
当我检索这个字符串时,我需要根据它是什么字符串执行某些操作。但是,我该如何使用字符串呢。如果是int,我可以使用switch case,但是我该怎么处理字符串呢?
除了使用if-else和String还有其他方法吗。等于比较两个字符串?或者,是否有方法检索所选位置而不是所选字符串?
如果必须用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;
}
}
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中执行操作。
您可以将所有字符串
与相应的int
值一起存储到哈希映射
中,然后在int
上设置一个开关
大小写。
当我发送FCM消息且应用程序处于后台时,我想清除共享首选项。在方法中,我正在调用一个方法来清除它们。 我得到以下错误: 未处理的异常:MissingPluginException(在channel plugins.flatter.io/shared_首选项上找不到方法getAll的实现)
对于下面的代码,我正在尝试检索共享的首选项,我认为它保存正确,但当我回到登录屏幕时,所有的数据都消失了。我需要它留在我回到这个屏幕上。所以我在个人资料页面上输入姓名、年龄和id到三个单独的行中。然后按下save按钮,然后按下action Bar上的back转到前面的页面。当我回到个人资料页面时,我的信息应该还在那里,但它没有任何帮助?
非常感谢您的光临,我正在为学校开发一个应用程序,我遇到了另一个问题。该应用程序的主要思想是跟踪您的卡路里,我希望它能节省卡路里,所以当应用程序关闭时,它仍然会记住他们。我已经忙了一段时间了,现在尝试使用SavedPreferences,但我总是出现错误。我希望有人能帮我。 } 我可能做了很多明显的愚蠢的事情,但我真的弄不明白。 多谢!
我正在使用共享首选项为我的应用程序存储某些值。我想看看我的手机上实际存储信息的文件。我在Eclipse上找到了很多实现这一点的方法,但我正在Android Studio上调试。我的手机有根了。我读到拥有root访问权限对读取这些类型的文件很重要。如果没有办法,那么我将查找如何通过我的程序访问信息,然后输出到日志猫。希望,虽然,我可以直接在电话上查看文件,因为它要简单得多。多谢了。
更新崩溃日志:
我正在创建一个番茄工作计时器应用程序。它有2项活动: 主要活动是设置时间 我已经创建了一个对象,它保存了设置的时间,我希望这些时间显示在Recents活动中的按钮中。但是,似乎没有保存数据,而是显示了包名称。