Thursday,April 21,2011-Eclipse_android_ApiDemo_学习2
6.App/Activity/Hello World
Demonstrates start normal an activity
7.App/Activity/Persistent State
Demonstrates preferences save,演示如何使用persistent preferences来保留切屏时原Activity的一些值,方便在切回时复原.
两点关键一为生命周期,OnResume()时读取数据,OnPause()时建立数据
二为建立数据:SharedPreferences.Editor editor = getPreferences(0).edit();
按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了……把BACK事件直接自己给吞了:如果在startActivityForResult起来的Activity里面设置setResult,结果并不会马上返回给parent的Activity,只有当前Activity被finish,结果才会被发送给parent的onActivityResult去处理!
startActivityForResult(intent, requestCode)两个参数 一个是意图对象,另一个是请求代码。
这里的requestCode就是前面启动新Activity时的带过去的requestCode,而resultCode则关联上了setResult中的resultCode,data是参数,extras也是一个很重要的东西,后面再研究一下它的作用。
Wednesday,April 20,2011-Eclipse_android_ApiDemo_学习1
由于老版本的eclipse,最近大姨妈了,所以下载最新的eclipse 2011,下面有有关安装的重点:
Eclipse 3.5插件安装与卸载的10个小窍门 http://developer.51cto.com/art/200907/136120.htm
查看activity调用用adb shell logcat
进入正题:
- App/Activity/Animation
可以学到不同activity直接动态跳转的设置,方法为
public void overridePendingTransition (int enterAnim, int exitAnim)
Call immediately after one of the flavors of startActivity(Intent)
or finish()
to specify an explicit transition animation to perform next.
Parameters
enterAnim | A resource ID of the animation resource to use for the incoming activity. Use 0 for no animation. |
---|---|
exitAnim | A resource ID of the animation resource to use for the outgoing activity. Use 0 for no animation. |
这个方法的参数有两部分,一部分是载入动画,部分是退出动画;载入动画是指下一个页面的载入方法,退出动画是指当前页面的退出方式,可以设置动画的持续时间长一些,来观察动画的整体过程 |
2. App/Activity/Custom Dialog(1)
我们在开发程序是经常会需要软件全屏显示、自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示.
演示如何编写一个类似弹出菜单的Activity.
建立一个 CustomDialogActivity.activity,在xml中模仿dialog设置参数即可(ugly frame)
3. App/Activity/Custom Title
演示如何制作有左右标题的标题栏
启用窗体的扩展特性: requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
这是自己设置 Featrue:getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);
4. App/Activity/Dialog (2)
演示如何使用theme,对话框风格使你的activity看起来像一个对话框.
建立一个 DialogActivity.activity
启用窗体的扩展特性: requestWindowFeature(Window.FEATURE_LEFT_ICON);(测试启用title扩展也可以)
设置系统提供的窗体图片: getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert);(布局可自定义)
5. App/Activity/Forwarding
使某个Activity在task堆栈中终止,即按back按钮不能返回到这个Activity.
不需要返回值的启动另一个activity : startActivity(intent);
Intent intent = new Intent();
intent.setClass(Forwarding.this, ForwardTarget.class);
startActivity(intent);
Tuesday,April 19,2011-Eclipse_android_源码_追溯_方法
- Git 下载android framework 2.2 源码
- 打开Eclipse 创建一个Java项目叫android_src2.2
-
把eclipse工程配置文件复制到android源码根目录下
cp development/ide/eclipse/.classpath ./ -
修改eclipse程序的配置
1)、修改eclipse缓存设置
把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
2)、把android-formatting.xml和android.importorder导入eclipse
android-formatting.xml、.classpath和android.importorder都放在development/ide/eclipse/下
android-formatting.xml用来配置eclipse编辑器的代码风格;android.importorder用来配置eclipse的import的顺序和结构。
在window->preferences->java->Code style->Formatter中导入android-formatting.xml
在window->preferences->java->Code style->Organize Imports中导入android.importorder
把android源码作为一个工程导入eclipse
导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除
新建Java Project(不是android project,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。 - 找出不能导入的代码,修改,删掉处理以便继续导入.
- 此时已经可以在本项目中查看库方法声明和实现(F3)或(Ctrl+鼠标左键)
- 鼠标右击,需要查看库的项目,单击属性(propreties),选择项目参考(project references),选择android_src2.2