从这个星期开始看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了。
分享到:
相关推荐
android4.0 launcher源码 可直接在Eclipse中运行 与其他launcher不冲突
赠送jar包:junit-platform-launcher-1.8.0-M1.jar; 赠送原API文档:junit-platform-launcher-1.8.0-M1-javadoc.jar; 赠送源代码:junit-platform-launcher-1.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-...
junit-platform-launcher-1.7.0.jarjunit-platform-launcher-1.7.0.jar
launcher源码(ADWlauncher+android4.0原生launcher)
赠送jar包:junit-platform-launcher-1.8.0-M1.jar; 赠送原API文档:junit-platform-launcher-1.8.0-M1-javadoc.jar; 赠送源代码:junit-platform-launcher-1.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-...
junit-platform-launcher-1.6.2.jarjunit-platform-launcher-1.6.2.jarjunit-platform-launcher-1.6.2.jar
android4.0中Launcher2源码。
压缩包内是原生的android4.0 launcher代码
赠送jar包:junit-platform-launcher-1.6.1.jar; 赠送原API文档:junit-platform-launcher-1.6.1-javadoc.jar; 赠送源代码:junit-platform-launcher-1.6.1-sources.jar; 赠送Maven依赖信息文件:junit-platform-...
标签:ant-launcher-1.8.3.jar,ant,launcher,1.8.3,jar包下载,依赖包
从android4.0源码中考出来的 launcher2的源码,谁需要谁下吧
junit-platform-launcher-1.3.1.jar
开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ...
Android Rocket Launcher Gradle plugin that adds tasks to your android modules for installing and launching all variants. How to use Paste this code into your module's build.gradle apply plugin: '...
android-launcher-plus
ant-launcher-1.7.1.jar ant-launcher-1.7.1.jar ant-launcher-1.7.1.jar ant-launcher-1.7.1.jar ant-launcher-1.7.1.jar
Android6.0原生Launcher3代码 API23导入eclipse编译通过。
这个项目是对android-tv-launcher开源项目用gradle编译的升级改造
android studio期末作业AnderWeb-android_packages_apps_Launcher-4458ee4AnderWeb-android_packages_apps_Launcher-4458ee4AnderWeb-android_packages_apps_Launcher-4458ee4AnderWeb-android_packages_apps_...