gpt4 book ai didi

java - 在 fragment 中保存首选项

转载 作者:行者123 更新时间:2023-12-01 12:52:39 25 4
gpt4 key购买 nike

我有一个带有 29 个复选框的 fragment ,我想保存这些复选框的首选项(如果它们被选中或未被选中),以便当我重新打开应用程序时,复选框会被选中或不被选中(取决于之前的使用情况)

我已经实现了sharedPreferences,但仍然无法保存它们。当我重新打开应用程序时(或者当我更改 fragment 并返回时),之前选中的复选框将被取消选中(如重置)。

我对 Android 编程有点陌生,所以请原谅我的新手。

这是我的fragment.java

public class PresencasFragment extends Fragment implements OnClickListener {

CheckBox aula1;
(...)
CheckBox aula29;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_presencas, container, false);

aula1 = (CheckBox) rootView.findViewById(R.id.aula1);
(...)
aula29 = (CheckBox) rootView.findViewById(R.id.aula29);

loadSavedPreferences();

return rootView;
}

private void loadSavedPreferences() {
// TODO Auto-generated method stub
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());

boolean aula1Val = sharedPreferences.getBoolean("CheckBox_Value1", false);
(...)
boolean aula29Val = sharedPreferences.getBoolean("CheckBox_Value29", false);

if (aula1Val){
aula1.setChecked(true);}
else{
aula1.setChecked(false);}

(...)

if (aula29Val){
aula29.setChecked(true);}
else{
aula29.setChecked(false);}
}


private void savePreferences(String key, boolean value){
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(key, value);
editor.commit();
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(aula1.isChecked()) savePreferences("CheckBox_Value1",aula1.isChecked());

(...)

if(aula29.isChecked()) savePreferences("CheckBox_Value29",aula29.isChecked());
}

那么,我做错了什么?

最佳答案

当您可以使用为此目的而设计的 PreferenceFragment 时,为什么您要为此拥有自己的 fragment ? (或 API 级别 11 下的 PreferenceActivity)

它会自动完成您正在做的事情。

查看此链接了解更多信息:http://android-er.blogspot.hu/2012/07/example-of-using-preferencefragment.html

关于java - 在 fragment 中保存首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107552/

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