我有一个带有人名的listView。当我点击一个名字时,我改变了点击名称的颜色。但是当我再次创建活动时,我会丢失项目颜色。有人可以帮帮我吗?
obs:我正在使用一个简单的ArrayAdapter作为我的listView。
答案 0 :(得分:1)
而不是onSaveInstance()试试这个。
$2
答案 1 :(得分:0)
在您的活动或片段中,您可以覆盖onSaveInstanceState
和onRestoreInstanceState
。在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.html和http://developer.android.com/reference/android/content/SharedPreferences.html。
答案 2 :(得分:0)
好吧所以这里是一个简单的快速投掷,如果它只是选择你应该做什么...这是非常简单的解释如何让它适合你
我创建了一个要点here
这表明:
使用带有一些文本的简单模型和一个选定的布尔值
选择和项目以更改其背景,并将其保留在滚动
使用SharedPreferences
将BaseAdapter
类用于自定义行项目