gpt4 book ai didi

java - 如何将数据存储在一个 fragment 中以将其获取到另一个 fragment 中?

转载 作者:行者123 更新时间:2023-12-02 09:44:36 24 4
gpt4 key购买 nike

我正在我的共享首选项类中存储一个字符串,并且我想在另一个 fragment 中使用该字符串。

我认为我在上下文、应用程序上下文上做错了什么。我不知道上下文的事情。每当我打开我的个人资料 fragment 时,应用程序就会崩溃。

共享偏好类别

public class SharedPrefs {
private static final String myPrefs = "myprefs";
private static final String LogedInKey = "Key";
private final Context context;
private final SharedPreferences sharedPreferences;
private final SharedPreferences.Editor editor;


public SharedPrefs(Context context) {
this.context = context;
sharedPreferences = context.getSharedPreferences(myPrefs, Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
}

public void savePref(String key) {
editor.putString(LogedInKey, key);
editor.commit();
}

public String getLogedInKey() {
return sharedPreferences.getString(LogedInKey, null);
}

public void clearLogin() {
editor.putString(LogedInKey, null);
editor.commit();
}}

我的个人资料 fragment :

public class ProfileFragment extends Fragment {
private Context context;
private SharedPrefs sharedPrefs=new SharedPrefs(context);

public ProfileFragment(Context context) {
this.context = context;
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_profile, null);
TextView userName=view.findViewById(R.id.userName);
String a=sharedPrefs.getLogedInKey();
userName.setText(a);

return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);


}}

我只想将共享引用中的字符串设置为 TextView。

最佳答案

1.实际上你不需要将上下文作为 fragment 构造函数传递,因为这是不正确的并且它不会工作

    public class ProfileFragment extends Fragment {
private SharedPrefs sharedPrefs;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
sharedPrefs=new SharedPrefs(getActivity());
View view = inflater.inflate(R.layout.fragment_profile, null);
TextView userName=view.findViewById(R.id.userName);
String a=sharedPrefs.getLogedInKey();
userName.setText(a);

return view;
}
@Override

public void onViewCreated(@NonNull View view, @Nullable Bundle
savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

}}

关于java - 如何将数据存储在一个 fragment 中以将其获取到另一个 fragment 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56763573/

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