如何从ListView中保存项目颜色?

时间:2015-09-15 17:24:04

标签: android listview android-listview

我有一个带有人名的listView。当我点击一个名字时,我改变了点击名称的颜色。但是当我再次创建活动时,我会丢失项目颜色。有人可以帮帮我吗?

obs:我正在使用一个简单的ArrayAdapter作为我的listView。

3 个答案:

答案 0 :(得分:1)

而不是onSaveInstance()试试这个。

$2

答案 1 :(得分:0)

在您的活动或片段中,您可以覆盖onSaveInstanceStateonRestoreInstanceState。在onSaveInstanceState中,您将传递一个可用于保存颜色值的包。然后在onRestoreInstanceState中,您将传递包含颜色值的包。检索颜色值并将其设置为颜色。

protected void onSaveInstanceState(Bundle outState) {
    // color values are usually int, but there are many other put methods
    // for a bundle so if the color is in a different form there are
    // other options
    outState.putInt("color", theColorValue);
    super.onSaveInstanceState(outState);
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    // set the name color using savedInstanceState.getInt("color");
}

根据@ inner_class7的建议,您也可以通过调用SharedPreferences来使用getSharedPreferences("someName", Context.MODE_PRIVATE)。有关如何使用SharedPreferences的详细信息,请参阅http://developer.android.com/guide/topics/data/data-storage.htmlhttp://developer.android.com/reference/android/content/SharedPreferences.html

答案 2 :(得分:0)

好吧所以这里是一个简单的快速投掷,如果它只是选择你应该做什么...这是非常简单的解释如何让它适合你

我创建了一个要点here

这表明:

  1. 使用带有一些文本的简单模型和一个选定的布尔值

  2. 选择和项目以更改其背景,并将其保留在滚动

  3. 使用SharedPreferences

  4. 保存元素的选定位置
  5. BaseAdapter类用于自定义行项目