各种View的使用技巧和注意点

声明: 本博文作为个人的学习笔记,如果有想法我会继续更新,欢迎大家斧正,共同进步。
 	本博文来自于笔者查找各种资料集合起来的笔记,很多内容原文已不可考,如有侵权,请联系在下。 
@http://blog.csdn.net/tt_man

1、给TextView添加下划线其实很简单,只需要在布局文件中设置一个属性: style="?android:attr/listSeparatorTextViewStyle" 其实上述属性其实也适用于LinearLayout等等

2、
Listview不刷新的问题
使用Listview的时候: 当要动态显示更改后的数据(例如数据库改动), 很多人应该都用过notifyDataSetChanged();这个方法来刷新Listview,显示改后的数据. 

这时候就要注意了: 
 <span style="white-space:pre">	</span><pre name="code" class="java"> <span style="white-space:pre">		</span>private ArrayList<HashMap<String, Object>> usersList; 
                 ...... 
                 usersList= query(......);     //根据查询函数获取一个ArrayList并赋值给绑定到Adapter的数据源usersList 
                 sAdapter.notifyDataSetChanged(); 
                 ...... 
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"> 如果你也是:   上面这种形式去刷新ListView的数据的话, 是不可以更新的. 必须改成如下形式: </span>
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"></span><pre name="code" class="java">  <span style="white-space:pre">		</span> ...... 
                //usersList= query(......);    
                 usersList.clear();  
                 usersList.addAll(query(......)); 
                 sAdapter.notifyDataSetChanged(); 
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">原因是:    sAdapter会通过usersList获取List中的内容。但是实际上可能(也应该)是,在调用super(MyActivity.this, R.layout.item, usersList)时sAdapter保存了usersList指向原List(假设为List a)的引用,在调用query函数之后,usersList指向了一个新的List(List b)。但是在调用notifyDataSetChanged()时,sAdapter会跟据保存的引用(即指向List a的引用)去更新,因此当然还是原来的结果,不会进行更新。 </span>





 







 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值