Android listview项目背景改变

标签 android listview android-listview onclick position

我有一个安卓 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/

相关文章:

android - 使用 android-support-v7 :21 library 的工具栏上未显示 ActionBarDrawerToggle

android - Android 是否支持 800 x 480 屏幕尺寸?

android - AOS 4.x和ListView的问题-在ListView滚动时更改数据

wpf - (WPF) 动画 ListView 项目移动

java - 在 fragment 中填充 JSON ListView

java - 在每个 ListView 项目中添加 Heavy UI

android - 如何保存用户输入并在 ListView 中检索?

java - 如何从字符串中提取带有单词的行(java_android)

android - 如何将 phonegap 应用程序直接部署到设备

Android,使用 SimpleCursorAdapter 设置颜色而不仅仅是字符串