因此,getLong()
的方法SharedPreferences
。无法在<long-array>
中声明strings.xml
。那么我们在哪种情况下使用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
答案 0 :(得分:0)
尝试
return Long.valueOf(prefs.getString("interval", INTERVAL_NEVER));
答案 1 :(得分:0)
尝试使用:
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));