gpt4 book ai didi

android - 如何在偏好 fragment 中获取偏好值

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:55 28 4
gpt4 key购买 nike

我想在自定义首选项屏幕中显示首选项的值。为此,我需要在首选项 fragment 中获取值,在本例中为字符串。在非 fragment ( Activity )中,我得到了例如值final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 并使用 String phonenumber = prefs.getString("preference_name", null); 获取字符串,但在首选项 fragment getDefaultSharedPreferences 不适用于首选项 fragment 。

知道如何解决这个问题吗?

这是我的代码 fragment :

public class PreferencesFragment extends PreferenceFragment implements
OnSharedPreferenceChangeListener {

TextView tvusername, tvphonenumber;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);

final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);


// entering preference phonenumber in text view
String phonenumber = prefs.getString("phonenumber", null);
;
tvphonenumber.setText(phonenumber);

// entering preference username in text view
String username = prefs.getString("username", null);
;
tvusername.setText(username);

}

最佳答案

在 fragment 类的 onActivityCreated (这是创建 Activity 的时间)中,您可以

Context hostActivity = getActivity();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(hostActivity);

这就是您从附加 fragment 访问 hostActivity 的方式。

关于android - 如何在偏好 fragment 中获取偏好值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25532189/

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