Опитвам се да получа и задам стойност на listPreference от различни дейности и не работи.
Когато го чета и пиша от основната си дейност, той запазва само всичко, което пиша, така че предполагам, че не насочвам правилно listPreference, когато съм извън дейността, защото работи в моята предпочитана дейност без проблем.
Виждал съм някои препратки на уебсайта на разработчиците към CharSequence с getValue и getEntryValues, но също нямах късмет да ги накарам да работят правилно.
Ето моят код за щракване върху бутон и задаване на стойността на listpreference, след което стартира намерение за превключване на дейности:
Основна дейност, опитвайки се да зададе стойността на listpreference на първата стойност на индекса;
SharedPreferences settings = getSharedPreferences("PreferenceXML",
MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("ListPreferenceInXML", "1");
editor.commit();
String levelCheck = settings.getString("ListPreferenceInXML","1");
В следващата си дейност извиквам read стойността при стартиране, за да видя кой listPreference е активен и винаги е числото, което пиша от основното действие, изброено по-горе. Проблемът е, когато отида до действителната активност на предпочитанията и тя не съвпада или се актуализира, когато я променя в ListPreference и стартирам същата дейност от там (все още чете стойността, която съм задал от бутона за основна дейност)
кодирайте както следва за дейност, която се опитва да прочете ListPreference:
SharedPreferences settings = getSharedPreferences("PreferenceXML",
MODE_PRIVATE);
Toast.makeText(this, settings.getString("ListPreferenceInXML","1"), 1000).show();