java - 如何从首选项中获取保存的 arrayList

标签 java android arrays

我尝试从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/

相关文章:

java - 使用 cgo 从 Go 返回 String[]

Java:如何在一维数组中存储二维数组

Android Lollipop 在USB OTG中创建一个文件夹

java - 共享和存储 RSA - Java 服务器中的公钥,反之亦然

java - 如何在Android项目中命名getter/setter

java - 用单元格内容替换字符串单元格引用

java - 当我使用 java.lang.instrument.Instrumentation#redefineClasses() 时,我应该将数组传递给函数吗?

javascript - 从数组中获取最后单击项目的值

java - 不同类型的二维数组

java - 如何在 C++ 中最有效地将像素数组渲染到窗口?