获取共享首选项并在列表视图中显示它们

时间:2015-10-07 14:16:43

标签: java android listview sharedpreferences

所以我在主要活动中有一些共享偏好:

SharedPreferences prefs = this.getSharedPreferences("myFavs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();

我添加了一些生成的字符串作为键值对:

editor.putString(saved,saved);
editor.apply();

在另一项活动中,我希望能够将我在共享首选项文件中保存的所有键值对显示到ListView中。

我使用了以下内容:

 ListView listView = (ListView) findViewById(R.id.favsList);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.listlayout, android.R.id.text1, values );
    listView.setAdapter(adapter);

之前,但我不知道如何将我的所有共享首选项转换为可以放入ListView的格式。

P.S我应该提到我只需要一个键或值列表作为键,值总是相同的。

我认为这可能解决了我的问题:

SharedPreferences prefs = getSharedPreferences("myFavs", 0);
    Map<String, String> m = (Map<String, String>) prefs.getAll();
    List<String> list = new ArrayList<>(m.values());

这是对的吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你需要的是检索所有偏好值。

为此你可以使用它;

{{1}}

您可以将值存储到数组中并使用。

<强>更新

更准确地说

{{1}}

您可以使用此函数获取您可以提供给Listview适配器的所有首选项和返回的String数组