gpt4 book ai didi

Android:如何初始化 PreferenceFragment 中的所有摘要

转载 作者:行者123 更新时间:2023-11-30 02:00:48 25 4
gpt4 key购买 nike

public class SettingsActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
getFragmentManager().beginTransaction()
.add(R.id.settingsContainer, new SettingsFragment())
.commit();
}

public static class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}

@Override
public void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}

@Override
public void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("aKey") {
Preference pref = findPreference(key);
pref.setSummary(sharedPreferences.getString(key, ""));
}
}
}
}

当用户更改他的首选项时,它们将被存储并由监听器显示。当 Activity 重新启动时,我丢失了所有摘要,但值被正确存储,因为如果我单击每个首选项,它们就会被检索。我想展示之前所做的事情,而不是默认值。

最佳答案

在注册监听器后的 onResume() 方法中,只需使用每个首选项键调用监听器即可。

 @Override
public void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
onSharedPreferenceChanged(getPreferenceScreen().getSharedPreferences(), "your_key");
}

关于Android:如何初始化 PreferenceFragment 中的所有摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31512514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com