Android列表视图项目背景更改

Android列表视图项目背景更改,第1张

概述我有一个 Android列表视图.我想在单击一个listview项目时更改listview项目背景. 然后,之前选择的项目必须返回默认背景.这意味着只需要选择一个项目. 我已经搜索了很长时间了.我可以使用onItemClick()更改所选项目的背景 但我不能改变以前选择的项目.例如,如果我选择第二个项目,它就会被更改.然后我选择第三项.哦,我的上帝!它也改变了!我能为此做些什么我怎么能得到以前的位 我有一个 Android列表视图.我想在单击一个ListvIEw项目时更改ListvIEw项目背景.

然后,之前选择的项目必须返回默认背景.这意味着只需要选择一个项目.

我已经搜索了很长时间了.我可以使用onItemClick()更改所选项目的背景

但我不能改变以前选择的项目.例如,如果我选择第二个项目,它就会被更改.然后我选择第三项.哦,我的上帝!它也改变了!我能为此做些什么我怎么能得到以前的位置?

这是我的androID代码.

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);        }    }
解决方法 当我在一个类似的例子中有这个时,我有一个名为的全局字段:
selectedListItem;

这将在您的onitemClickListener中更新,之前的项目将使其背景返回到默认值.

所以要更新你的代码:

private class ListVIEwItemClickListener implements        AdapterVIEw.OnItemClickListener {    @OverrIDe    public voID onItemClick(AdapterVIEw<?> parent,long ID) {        //First update the prevIoUsly selected item if one has been set        if(selectedListItem!=null){            TextVIEw prevIoUsTitle = (TextVIEw) selectedListItem.findVIEwByID(R.ID.Title);            prevIoUsTitle.setBackgroundResource(R.drawable.List_default_background);        }        //Then update the new one        TextVIEw Title = (TextVIEw) vIEw.findVIEwByID(R.ID.Title);        Title.setBackgroundResource(R.drawable.List_shape);        selectedListItem = vIEw;    }}

因此,只需将selectedListItem作为适配器中的字段,将onClickListener作为内部类,并使用默认背景drawable而不是List_default_background.

或者,您可以跟踪位置编号而不是实际视图.

编辑:

要将此方法用于列表,您还必须跟踪特定列表项的ID或对象实例.在我自己的解决方案中,在我的listadapter的getVIEw方法中,我确保只更新与正确项目的ID /实例匹配的列表项.使用您的代码时,您还会发现当您向下滚动视图时,此可见项列表中的相同位置也会更新.这是因为列表视图引用了项目集中的列表,其中每个集合对应于任何时候屏幕上可见的项目.

要更新单个特定项目,您更适合使用其他答案中提到的选择器背景或指示器.

HTH

总结

以上是内存溢出为你收集整理的Android列表视图项目背景更改全部内容,希望文章能够帮你解决Android列表视图项目背景更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1130382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存