我正在Android Studio中使用Java创建一个Android应用程序。我需要创建一个列表视图,其中重新创建列表视图时,先前选定的元素将显示为已选中。可以选择列表视图中的多个元素。首先会创建列表视图,我们将跟踪Pair<String, boolean>
列表中保存的内容,其中String
是列表视图元素,boolean
表示元素是否元素被选中了。
我使用
处理背景颜色的变化public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
if(!tmpSelectedSkills.get(position).isSelected()){
tmpSelectedSkills.get(position).setIsSelected(true);
parent.getChildAt(position).setBackgroundColor(
Color.parseColor("#A9BCF5"));}
else{
tmpSelectedSkills.get(position).setIsSelected(false);
parent.getChildAt(position).setBackgroundColor(
Color.parseColor("#ffffff"));}
}
如果用户关闭列表视图并选择重新创建它以更改其选择,我希望在向用户显示之前在新列表视图中更改其先前选择的背景颜色。
为此,我需要访问
View view
来自onItemClick
的签名,对应于我想要更改背景颜色的View
。
答案 0 :(得分:0)
您可以在updateData()
中创建方法adapter
。在YourObject
List<YourObject>
boolean
中为已知选中的字段clickOnItem
定义。在您使用listview true
时,请按方法notifyDataChanged
将此字段设置为updateData()
和(a | b)
=> [1, 2, 3, 4, 5, 6]
(a & b)
=> [2, 4]
(a | b) - (a & b)
[1, 3, 5, 6]
。在适配器中,检查fields == true,是否为行设置了backgroud。对不起,我的英文不好