public long getLongSharedValue(String key, long def) {
SharedPreferences settings = context.getSharedPreferences(
context.getApplicationInfo().packageName + "_prefs", Context.MODE_PRIVATE);
return settings.getLong(key, def); // Error is logged here...
}
return settings.getLong(key, Long.valueOf(def));
错误日志如下:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
at android.app.SharedPreferencesImpl.getLong(SharedPreferencesImpl.java:249)
at package-name.UtilityClass.getLongSharedValue(UtilityClass.java:104)
at package-name.Fragment1.getPullData(Fragment1.java:130)
at package-name.Fragment1.onCreateView(Fragment1.java:107)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
我正在使用我的应用程序中的方法:
long id = mUtility.getLongSharedValue(Constants.SharedPreferencesKeys.USER_ID, 0);
//long id = mUtility.getLongSharedValue(Constants.SharedPreferencesKeys.USER_ID, 0L); // Tried this as well but same issue is perishing...
当u r将值传递给这个getLongSharedValue(String,long)时,请确保您传递的第二个参数值是一个长的数据类型值。
因为long.valueOf()主要接受两种参数类型,要么是string要么是long。
因为它对u不起作用,传递给getLongSharedValue(String,long)第二个参数的值似乎不是长值。
我遇到了一个奇怪的问题,我正在尝试设置一个日期时间。Now()对象的共享首选项,如下所示 为了测试,当我在同一个函数中设置后立即读取键时,我将预期结果日期转换为字符串 2020-06-17 13:32:17.548524 问题是,当我试图从另一个函数读取密钥时, 它给了我这个结果 下午1:32:17 知道偏好数据是如何变化的吗?日期的格式与DateFormat.jms()类似 还试图理解为什么相同
对于下面的代码,我正在尝试检索共享的首选项,我认为它保存正确,但当我回到登录屏幕时,所有的数据都消失了。我需要它留在我回到这个屏幕上。所以我在个人资料页面上输入姓名、年龄和id到三个单独的行中。然后按下save按钮,然后按下action Bar上的back转到前面的页面。当我回到个人资料页面时,我的信息应该还在那里,但它没有任何帮助?
非常感谢您的光临,我正在为学校开发一个应用程序,我遇到了另一个问题。该应用程序的主要思想是跟踪您的卡路里,我希望它能节省卡路里,所以当应用程序关闭时,它仍然会记住他们。我已经忙了一段时间了,现在尝试使用SavedPreferences,但我总是出现错误。我希望有人能帮我。 } 我可能做了很多明显的愚蠢的事情,但我真的弄不明白。 多谢!
MainActivity.java 对不起,我的英语很差。
我试图从SharedPreferences中获取布尔值,这是真的,但每次都会得到一个假值。名为“MyPref”的SharedPreferences文件包含以下代码: 我正在为MyActivity中的SharedPreferences添加值。使用以下代码初始化: 并通过以下方式在多个类上检索它: 我总是得到Premium的值为false,发生这种情况的原因是什么,如何解决?我使用的是android
问题内容: 我有。我想使用获得最大结果。这是我的代码: 这是我的: 现在我得到了。怎么了? 问题答案: 您的错误可能在以下行中: 其中query.list()返回BigInteger列表而不是Long列表。尝试将其更改为。