У меня возникла проблема с classCastException в моем коде, но я не могу ее найти. Я не знаю, где это может быть. Я пытался go код за кодом, строка за строкой, и я не нашел его. Кажется, все в порядке. Я попытался сравнить его с кодом, который работает, и он выглядит абсолютно одинаково (за исключением значений). Вот код:
Часть сообщения об ошибке:
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:302)
at com.example.helldumbellv3.Adapters.SharedPreferencesAssistant.getSharedPreferencesInt(SharedPreferencesAssistant.java:79)
at com.example.helldumbellv3.Adapters.RecyclerViewSetter.getObject(RecyclerViewSetter.java:40)
at com.example.helldumbellv3.FitnessActivity.onCreate(MainActivity.java:97)
Итак, теперь код в порядке сообщения об ошибке >>
MainActivity. java: 97: - Это внутри метода OnCreate
String recycleViewProgramSelector = RecyclerViewSetter.getObject(1, getApplicationContext());
RecyclerViewSetter. java: 40: - Это часть метода, поэтому я опубликую все это.
public static String getObject(int position, Context context){
/**row n.40 >>*/ int programPositionI = SharedPreferencesAssistant.getSharedPreferencesInt(context,
SharedPreferencesAssistant.SharedPreferencesKeys.RecyclerSTposition, 999);
int programPositionII = SharedPreferencesAssistant.getSharedPreferencesInt(context,
SharedPreferencesAssistant.SharedPreferencesKeys.RecyclerNDposition, 999);
int programPositionIII = SharedPreferencesAssistant.getSharedPreferencesInt(context,
SharedPreferencesAssistant.SharedPreferencesKeys.RecyclerRDposition, 999);
if (position == programPositionI) {
return SharedPreferencesAssistant.getSharedPreferencesString(context,
SharedPreferencesAssistant.SharedPreferencesKeys.RecyclerViewST, "nothing");
}
else if (position == programPositionII) {
return SharedPreferencesAssistant.getSharedPreferencesString(context,
SharedPreferencesAssistant.SharedPreferencesKeys.RecyclerViewND, "nothing");
}
else if (position == programPositionIII) {
return SharedPreferencesAssistant.getSharedPreferencesString(context,
SharedPreferencesAssistant.SharedPreferencesKeys.RecyclerViewRD, "nothing");
}
return "Error - you have to set position to number 1,2 or 3";
}
SharedPreffeferencesAssistant. java: 79: - Это также часть метода, поэтому вот весь метод
public static int getSharedPreferencesInt(Context context, String key, int _default){
SharedPreferences preferences=PreferenceManager.getDefaultSharedPreferences(context);
/**row n.79 >>*/ return preferences.getInt(key, _default);
}
Это ключи, использованные в приведенном выше коде:
public static class SharedPreferencesKeys{
public static final String RecyclerViewST = "1";
public static final String RecyclerSTposition = "non";
public static final String RecyclerViewND = "2";
public static final String RecyclerNDposition = "non";
public static final String RecyclerViewRD = "3";
public static final String RecyclerRDposition = "non";
public static final String activatedProgram= "0";
}
Из того, что я думаю, проблема в RecyclerViewSetter. java, потому что последний созданный мною класс и класс SharedPreferencesAssistant прекрасно работали до того, как я создал этот метод