【问题标题】:SharedPreferences getLong() -> java.lang.String cannot be cast to java.lang.Long. How to fix?SharedPreferences getLong() -> java.lang.String 不能转换为 java.lang.Long。怎么修?
【发布时间】:2013-07-27 21:25:34
【问题描述】:

所以有SharedPreferences的方法getLong()。没有办法在strings.xml 中声明<long-array>。那么在什么情况下我们使用geLong()?

strings.xml

<string-array name="intervals">
    <item>Never</item>
    <item>Minute</item>
    <item>Fifteen</item>
    <item>Half hour</item>
    <item>An hour</item>
    <item>Half day</item>
    <item>Day</item>
</string-array>
<string-array name="intervalValue">
    <item>0</item>
    <item>60000</item>
    <item>900000</item>
    <item>1800000</item>
    <item>3600000</item>
    <item>86400000</item>
</string-array>

Preferences.xml

<ListPreference
    android:entries="@array/intervals"
    android:entryValues="@array/intervalValue"
    android:key="interval"
    android:summary="@string/summaryUpdaterInterval"
    android:title="@string/titleUpdaterInterval" >

代码:

public long getInterval()
{
    return prefs.getLong("interval", INTERVAL_NEVER);
}

原因:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long

【问题讨论】:

    标签: android exception sharedpreferences long-integer


    【解决方案1】:

    尝试使用:

    public long getInterval()
    {
        return Long.valueOf(prefs.getString("interval", INTERVAL_NEVER));
    }
    

    或者那个:

    public long getInterval()
    {
        long value = INTERVAL_NEVER;
        try
        {
            value = Long.parseLong(prefs.getString("interval", "" + INTERVAL_NEVER));
        } catch (Exeption e) { }
        return value;
    }
    

    此外,如果您不想将INTERVAL_NEVER 声明为String
    替换

    prefs.getString("interval", INTERVAL_NEVER));
    

    prefs.getString("interval", "" + INTERVAL_NEVER));
    

    【讨论】:

      【解决方案2】:

      试试

      return Long.valueOf(prefs.getString("interval", INTERVAL_NEVER));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        • 2013-08-24
        相关资源
        最近更新 更多