我有一个安卓 ListView 。我想在单击一个 ListView 项目时更改 ListView 项目背景。
然后之前选择的项目必须回到默认背景。这意味着只需选择一项。
找了好久。我可以使用 onItemClick() 更改所选项目的背景
但我无法更改之前选择的项目。例如,如果我选择第二项,它就被改变了。然后我选择第三项。我的天啊!它也改变了!我能为此做些什么。我怎样才能得到以前的位置?
这是我的安卓代码。
private class ListViewItemClickListener implements
AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
TextView title = (TextView) view.findViewById(R.id.title);
title.setBackgroundResource(R.drawable.list_shape);
}
}
最佳答案
您应该使用内置方法在 ListView 中选择项目。正如您所发现的,手动更改背景很容易出错。
将此属性添加到 ListView 项 xml 中的 Root View
android:background="?android:attr/activatedBackgroundIndicator"
然后在您的 ListView 上调用 setItemChecked(x, true)
,其中 x 是您要选择的项目的位置。
确保您的 ListView 有一个允许选择的ChoiceMode
集(例如“SingleChoice”)
关于Android listview项目背景改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953285/