ListView的item为TextView的时候,选中item设置不同的背景

来源:互联网 发布:爱奇艺网络大电影计划 编辑:程序博客网 时间:2024/06/04 19:03
        Android本身的ListView其实已经提供了比较丰富的功能,但在实际设计应用的时候,需要根据公司独有的风格来进行设置,所以总需要自己来做一些变化。今天说到的一个问题,就是ListView的item为TextView的时候,如何根据焦点所在来改变背景。
        我们都知道,ListView的内容是用Adapter来设置的,所以当时我的第一选择就是重写一个Adapter,在getView方法中来根据当前焦点位置进行设置,但很遗憾,也很莫名其妙的是,如果ListView中的item数量不超过当前屏幕,也就是不需要下拉的时候,完全没问题,但如果item比较多,焦点就无法向屏幕下方移动,这个问题我测试了好久也不知道是为什么,无奈就只能另辟奇径了。
        思路来源于本来项目中的其他模块的代码,在layout布局文件中有这样的属性:
        android:background="@drawable/textview_background"
        然后再textview_background.xml文件中,则有一个<selector>,里面写着2个item,分别是有焦点(android:state_focused)和无焦点的时候来设置背景。照葫芦画瓢,我也在自己的模块中这样写绝世唐门,但结果依然悲剧。
        无意间,自己输入了android:之后,eclipse给出了提示,在提示中有这样的属性:android:state_selected,会不会应该改成这个呢?试试吧,结果就是成功了!

        具体来说,很简单,这个selector的xml代码如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android" ><item      android:state_selected="true"android:drawable="@drawable/第一个背景"/><item    android:state_selected="false"android:drawable="@drawable/第二个背景"/></selector>
        问题解决了之后,也应该多想想,其实根本原因在于自己开发Android的经验太少,不了解这些东西,如果多开发,多做应用的话,会增加对Android的了解,这样的问题自然也会迎刃而解了。

原创粉丝点击