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

        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的了解,这样的问题自然也会迎刃而解了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值