我尝试从sharedPreferences 获取我保存的记录,但我不能。总是没有任何显示。
在LostDialogFragment
中,我保存数组,我调试它,并且它总是保存数据。我从 MainGameFragment 获取引用
public void saveArray() {
SharedPreferences prefs = getContext().getSharedPreferences("user_and_score", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
Set<String> set = new HashSet<>();
set.addAll(MainGameFragment.LEADERBOARDUSER);
edit.putStringSet("user_and_score", set);
edit.apply();
}
这是MainGameFragment
中的引用
public static ArrayList<String> LEADERBOARDUSER = new ArrayList<>();
在SettingsFragment
中我尝试获取保存的数组
private ArrayList<String> leaderBoardList = new ArrayList<>();
case LEADER_BOARD:
recyclerView.setVisibility(View.VISIBLE);
SharedPreferences prefs = getContext().getSharedPreferences("user_and_score", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
Set<String> set = new HashSet<>();
edit.putStringSet("user_and_score", set);
set.addAll(leaderBoardList);
edit.apply();
adapter = new CustomAdapterForSettingsFragment(leaderBoardList);
recyclerView.setAdapter(adapter);
break;
我的问题是如何获取保存的数组?
或者我没有保存。我现在调试,没有人保存,请帮我在共享中保存数组
最佳答案
对于您保存设置的问题,请尝试以下操作:- 1.) 提供一些不同的 key 来保存您的设置,例如
edit.putStringSet("your_set", set);
2.) 使用
edit.commit()
要获取您的套装,请尝试以下操作:-
SharedPreferences prefs = getContext().getSharedPreferences("user_and_score", Context.MODE_PRIVATE);
Set<String> newSet = prefs.getStringSet("your_set", new HashSet<String>());
通过这样做,您可以在 newSet 中获取您保存的集合。 谢谢!!!
关于java - 如何从首选项中获取保存的 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42481475/