随记

2015-1-4:

1. 对于ListView列表项,其高度默认是由子布局内容填充决定的,无法通过android:layout_height设置。但是可以通过android:minHeight进行设置。

list_view_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/item_height"
    android:minHeight="@dimen/item_height" >

</RelativeLayout>

 

2015-1-6

1. ListView.getCount()和ListView.getChildCount()

ListView.getCount()(实际上是 AdapterView.getCount()) 返回的是其 Adapter.getCount() 返回的值。也就是“所包含的 Item 总个数”。(包括headerView和footerView)

ListView.getChildCount()(ViewGroup.getChildCount) 返回的是显示层面上(可见)的“所包含的子 View 个数”(其他Item项未创建/重用)。

二者有什么不同?

当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;

Item 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount() 其中 getChildCount() 返回的是当前可见的 Item 个数。

其实 Android framework 的这一设计并不难理解:当一些 Item 当前不显示的时候为什么还要保留它们的 View 呢?移动设备的资源有限,“能省则省”嘛。

Via: http://blog.csdn.net/uoyevoli/article/details/4906214

 

2015-1-7

1. shell交互里的输入密码隐藏输出

#! /bin/bash
read -s content
echo $content

 

2015-1-22

1. ibus五笔的一些快捷键:

左shift:中英文切换
shift+空格:全角半角切换
Ctrl+;:简体繁体切换
Ctrl+,:切换单字(词组)模式
Ctrl+.:切换中英文标点
Ctrl+/:切换直接提交模式

 

2015-1-27

1. 支持多表连接,例如:
select * from student,class
where student.cid=class.id;
2. 支持左外连接(left outer join),例如:
select * from foods
left outer join food_types
on foods.id=food_types.food_id
3. 不支持右外连接和全连接

 

2015-2-2

一. 在使用 SharedPreferences的时候,官方建议是使用apply()方法,而不是使用commit()方法进行提交。commit()方法会在UI线程执行,有时候会阻塞UI线程;而apply()方法是异步提交的。

这两个方法的区别在于: 
1. apply没有返回值而commit返回boolean表明修改是否提交成功 
2. apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效 率。而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多 效率。 
3. apply方法不会提示任何失败的提示。 
建议:
由于在一个进程中,sharedPreference是单实例,一般不会出现并发冲 突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。
 
 
2015-2-5

posted on 2015-01-04 16:56  veins  阅读(177)  评论(0编辑  收藏  举报

导航