积少成多
ListView
listSelector:指示当前选中项的Drawable
cacheColorHint:为优化滚动过程中实时将当前每个Item的显示内容跟背景进行混合运算而采用的默认背景色
RelativeLayout的
子元素如使用layout_centerVertical或layout_centerHorizontal属性在1.5的机器上或出错。
子元素A如与子元素B某条边对其,在1.5中子元素B必须在子元素A之前布局。
Dialog
自定义Dialog的ContentView如果是ListView并且layout_width="wrap_content",列表项的Click事件无响应。
如果要重写OnStop和OnBackPressed方法,必先重载OnCreate方法。
焦点
TextView默认的focusable为false,但是MovementMethod设为LinkMovementMethod或ScrollMovementMethod时focusable会置为true,如果希望仍然为false,必须显式调用setFocusable(false)。
当MovementMethod设为LinkMovementMethod时,焦点首先聚集在整个TextView上,然后无论按什么方向键都会聚焦到超链接区域,之后会直接跳到所按方向键对应的其他组件上。
<requestFocus>标签并不一定可用,这是因为在Activity启动之后会触发onWindowFocusChanged事件,通常启动界面的<requestFocus>标签和OnCreate函数中的requestFocus调用都不起作用。
应用程序与输入法的交互
Activity与输入法的交互
AndroidManifest.xml中<activity>标签的android:windowSoftInputMode属性定义了应用程序的主窗口与屏上输入法的交互。包括两个方面:
1、当activity聚焦的时候,软键盘是否可见;
stateUnspecified:默认值,由系统确定
stateUnchanged:保持activity最近一次离开时的状态
stateHidden:当用户进入而不是返回activity时隐藏软键盘
stateAlwaysHidden:当activity的主窗体获得焦点时总是隐藏软键盘
stateVisible:当activity的主窗体获得焦点时显示软键盘
stateAlwaysVisible:当用户进入而不是返回activity时总是显示软键盘
2、调整activity主窗体
adjustUnspecified:默认值,由系统确定
adjustResize:总是resize以空出更多的空间给输入法
adjustPan:使焦点控件可见
android:windowSoftInputMode的属性值要么是上述列表的一个值,要么是state...中的一个值和adjust...中的一个值的组合。
EditText控件与输入法的交互
android:inputType属性定义了输入框的输入类型:
1、class概括了字符类型,当前支持text(纯文本)、number(数字)、phone(电话号码)和datetime(日期)
2、variation是对class的进一步细化
3、flags可以视作更进一步的细化
android:imeOptions属性定义右下角IME动作与编辑框相关的动作。如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。
ComponentName
由主包名(Manifest文件中manifest元素的package属性声明的值)和类名两部分组成。
lunch mode为singleTask(可能singleInstance也一样)时,startActivityForResult启动该Activity,在onActivityResult捕获不到事件。
使用Intent的putExtra的数据类型如果是CharSequence,用getStringExtra获取不到对应的字符串值,必须使用getCharSequenceExtra方法得到对应的值。
PriorityQueue维护一个有序列表,默认按字母顺序排序,可以通过过递给构造函数的java.util.Comparator对象来自定义排序。
ConcurrentLinkedQueue:线程安全的链表队列。
BlockingQueue接口的 put() 操作会在没有空间可用时阻塞,而消费者的 take() 操作会在队列中没有任何元素时阻塞。
ArrayBlockingQueue :有界数组阻塞队列。
LinkedBlockingQueue :可选有界链表阻塞队列。
PriorityBlockingQueue :无界优先级堆阻塞队列(只在没有元素时阻塞)。
DelayQueue :基于时间调度的无界优先级堆阻塞队列。
SynchronousQueue :