如何将 SharedPreferences 中的数据保存并显示为列表?

Posted

技术标签:

【中文标题】如何将 SharedPreferences 中的数据保存并显示为列表?【英文标题】:How do I save and display my data in SharedPreferences as a list? 【发布时间】:2022-01-02 21:23:43 【问题描述】:

我正在使用 SharedPreferences 来保存和加载保存为字符串的数据。我希望能够将数据保存为列表,我该如何执行此操作并将其添加到列表中,而不是替换数据?

这就是我保存数据的方式:

public void saveButton(View v) throws JSONException 
    String data = ((TextView) findViewById(R.id.randomJokeSetup)).getText().toString();
    String data2 = ((TextView) findViewById(R.id.randomJoke)).getText().toString();
    SharedPreferences datafile = getSharedPreferences("my_data_file", MODE_PRIVATE);
    SharedPreferences.Editor editor = datafile.edit();
    editor.putString("setup", data);
    editor.putString("punchline", data2);
    editor.commit();

    Snackbar.make(findViewById(R.id.save), "Joke saved!", Snackbar.LENGTH_SHORT).show();

这是我加载数据的方式:

public void loadButton(View v)
    SharedPreferences datafile = getSharedPreferences("my_data_file", MODE_PRIVATE);
    String setup = datafile.getString("setup","");
    String punchline = datafile.getString("punchline","");
    ((TextView) findViewById(R.id.loadJokeSetup)).setText(setup);
    ((TextView) findViewById(R.id.loadJoke)).setText(punchline);

【问题讨论】:

这能回答你的问题吗? Save ArrayList in shared preferences @VaibhavGoyal 嗨,不是真的,我是初学者,所以我不太明白如何在我的代码中使用它 【参考方案1】:

您可以将列表转换为 JSON 和 Gson 或任何您喜欢的内容,并将其保存在 SharedPreferences 中,当您想从中获取数据时,从该 JSON 字符串中获取您需要的元素。

更多信息请查看this tutorial

【讨论】:

以上是关于如何将 SharedPreferences 中的数据保存并显示为列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确的使用SharedPreferences

如何在flutter中使用mysql数据库(或json)中的sharedpreferences键选择以列出最喜欢的记录?

将 SharedPreferences 值传递给 Flutter 中的另一个方法

如何将整数保存到 SharedPreferences [重复]

删除 sharedPreferences 列表中的一个元素

如何使用提供程序将 List<object> 存储在 sharedpreferences 中?