将列表视图行的颜色更改为用户所需的颜色

时间:2017-07-23 14:42:57

标签: android listview

我正在开发一个" Notes"应用。我在Action Bar中添加了一个显示不同颜色的选项。当用户点击任何颜色时,它会更改背景颜色,但只要用户退出该特定活动并返回列表视图,颜色就会丢失。它没有显示在该特定列表视图项上。任何人都可以告诉我如何保持颜色变化状态?谢谢。

1 个答案:

答案 0 :(得分:0)

可能最简单的方法是在SharedPreferences中保存用户的颜色选择。您可以在onCreate()中阅读列表的背景颜色,并在每次用户从工具栏中选择颜色时更新首选项。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ...

    SharedPreferences prefs = getSharedPreferences("PREFS_NAME", Context.MODE_PRIVATE);
    int color = prefs.getInt("KEY_COLOR", -1);

    if (color == -1) {
        color = /* your default color here */;
    }

    listView.setBackgroundColor(color);
}

private void onToolbarColorSelected(int color) {
    listView.setBackgroundColor(color);

    SharedPreferences prefs = getSharedPreferences("PREFS_NAME", Context.MODE_PRIVATE);
    prefs.edit().putInt("KEY_COLOR", color).apply();
}