Android 4.0-Launcher-FolderEdit-onKeyPreIme
从这个星期开始看Android 4.0的code了。很久没有看source code了,还是在09年和10年看的1.5版本,现在4.0已经出来,觉得这是一个重新切入的版本,毕竟他是Tablet和smart phones的统一版本.我选择学习的第一app是Launcher,在1.5的版本觉得它的是源码最多的一个,在4.0却是Gallery了。接下来我针对学习Launcher过程掌握到新的API和心得体会进行记录:在Launcher中提供了Folder 这个功能,Folder还可以命名,其中命名的输入框就是一个EditText,在这里重载了EditText,重载类为:FolderEditText
我们看其源码:
package com.android.launcher2;import android.content.Context;import android.util.AttributeSet;import android.view.KeyEvent;import android.widget.EditText;public class FolderEditText extends EditText { private Folder mFolder; public FolderEditText(Context context) { super(context); } public FolderEditText(Context context, AttributeSet attrs) { super(context, attrs); } public FolderEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setFolder(Folder folder) { mFolder = folder; } @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { // Catch the back button on the soft keyboard so that we can just close the activity if (event.getKeyCode() == android.view.KeyEvent.KEYCODE_BACK) { mFolder.doneEditingFolderName(true); } return super.onKeyPreIme(keyCode, event); }}
在这个class里面Override了这个onKeyPreIme这个function,就是为了捕获back key event进行处理,也就是比IME输入法更早处理该Event.若以后我们要在EditText中处理Back key event,我们就可以重载该函数。若不重载,那系统就会先把back key event发给IME了。
页:
[1]