Проблема: При открытии игры на устройстве, я получаю сообщение об ошибке и LogCat говорит:ClassCastException: Integer не может быть приведен в Лонг
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
at android.app.SharedPreferencesImpl.getLong(SharedPreferencesImpl.java:247)
at com.lochdownstudios.projectmoney.GamePage.getDouble(GamePage.java:300)
at com.lochdownstudios.projectmoney.GamePage.onCreate(GamePage.java:101)
(Номера строк явно не относятся к этому прямо сейчас) Я понимаю, что проблема в том, что что-то по-прежнему является Integer, но я смущен и не могу найти, где/почему эта проблема возникает.
Код:
public class GamePage extends Activity {
protected Double iMoney = 0.0;
protected TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_page);
money = getDouble(myPreferences, "money", iMoney);
tv = (TextView) findViewById(R.id.txtMoney);
tv.setText("Money: " + money);
}
double getDouble(final SharedPreferences prefs, final String key, final double defaultValue) {
return Double.longBitsToDouble(prefs.getLong(key, Double.doubleToLongBits(defaultValue)));
}
}
Примечание: все импорт включаются в фактические файлы.
вы можете показать мне код, где вы положили деньги в prefrences –
вы уверены, что у вас есть длинное значение в ваших sharedprefrences потому что по ошибке вы пытаетесь получить длинное значение, но это ИНТ –
Long.valueOf (INT); –