Я использую действие под названием SettingsActivity
, которое расширяет PreferenceFragmentCompat
. Когда приложение запускается в первый раз MainActivity
, я пытаюсь получить настройки через getDefaultSharedPreferences(getApplicationContext())
, но безуспешно, поскольку они загружаются только при запуске действия «Настройки».
Чтобы доказать это, я проверил файл shared_preferences. xml и он заполняется только при открытии SettingsActivity
.
. В этом смысле, как я могу принудительно загрузить настройки в MainActivity
?
MainActivity
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Map<String, ?> allPreferences = getDefaultSharedPreferences(MainActivity.applicationContext).getAll();
Log.d(Class.forName(), allPreferences.isEmpty()); //prints true
Intent intent_settings = new Intent(activityContext, SettingsActivity.class);
startActivity(intent_settings);
}
}
НастройкиActivity
public class SettingsActivity extends PreferenceFragmentCompat {
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
setPreferencesFromResource(R.xml.preferences, rootKey);
Map<String, ?> allPreferences = getPreferenceManager().getSharedPreferences().getAll();
Log.d(Class.forName, allPreference.isEmpty()); // prints false
}
}