`
crazier9527
  • 浏览: 1014257 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android API Demo研究(3)

阅读更多

 

 

1. Receive Result

这个实验描述了Activity之间的另外一种切换方式,通常Activity的切换方式是Activity1通过startActivity切换到Activity2, Activity2再通过startActivity切换到其他的Activity,但是有的时候我们需要启动一个新的Activity获取用户的输入,然后返回到原来的Activity,比如activity是一个通讯录列表,我们通过一个增加按钮打开另一个activity让用户输入新的联系人,输入后再返回通讯录列表。 
这个时候,我们可以通过startActivityForResult(Intent, int)方法启动新的Activity,新的Activity通过setResult(int, Intent)方法返回老的Activity,这个时候会触发老的Activity的onActivityResult(int, int, Intent)方法,我们可以在这个方法的实现中处理返回事件。

startActivityForResult(Intent, int),其中int为Request Code,也是onActivityResult的第一个参数,通常一个Activity不仅仅只触发一个获取事件,比如上面提到的通讯录,可能会有一个增加联系人的事件,也可能会有一个修改联系人或给指定联系人增加一个电话的事件,但我们只有一个onActivityResult方法,所以我们需要这么一个Request Code区分是哪个事件的返回,这个值是用户自己定义的,而且完全是用户自己进行管理,很人性化。

setResult(int, Intent),其中的int是Result Code,它表示的是返回的状态,也是onActivityResult的第二个参数。这个参数需要特别注意一下,android为这个值提供了三个默认的常量。我们先看前两个,RESULT_CANCELED和RESULT_OK,这个从字面上很好理解,一个是运行取消,另一个是运行成功返回,当用户按BACK键时,Result Code就是RESULT_CANCELED。但我们看看他们分别对应的值,就会发现奇怪的地方,RESULT_CANCELED=0,RESULT_OK=-1!!!在其他系统中OK通常都是1,而在android,它是-1,这是为什么呢,来让我们看看第三个默认的常量,RESULT_FIRST_USER=1,明白了吧!android把所有大于0的数字都留给了用户自己,多么人性化啊!但是要注意了,如我前面所说,大部分系统都喜欢将大于0作为正确返回,小于0作为错误返回,所以很多人(包括我),喜欢用if(result > 0)表示返回成功,这个在android是不通行的,一定要特别注意!

此外在这个程序中,我们可以看到另外一件事情,关于TextView,如果我们要改变里面的内容,比如增加新的字段,需要将其设为可变长的,方法是mTextView.setText(mTextView.getText(), TextView.BufferType.EDITABLE); 
修改内容的方法是通过TextView.getText()获取Editable对象,然后Editable对象进行编辑就可以了,Editable类似于StringBuffer,编辑之后会直接反映到TextView里面,不需要再setText();

2. SaveRestoreState

完全没有看懂这个Demo要演示什么效果,好像是onSaveInstanceState以及TextView的android:freezesText属性有关,但具体效果没有研究出来,留到以后再研究吧

3.Translucent

Android为透明效果提供了内置的Theme: android:style/Theme.Translucent,只需要把当前的activity的theme设置为这个Theme就可以达到完全透明的效果。

如果要半透明的话,可以增加一个继承该Theme的style即可,实现如下:

<style name="Theme.Translucent" parent="android:style/Theme.Translucent"> 
    <item name="android:windowBackground">@drawable/translucent_background</item> 
    <item name="android:colorForeground">#fff</item> 
</style>

<drawable name="translucent_background">#e0000000</drawable>

此外API Demo中提供了另一个实例,不用继承内置的Theme,可以自己完全创建一个新的style,实现透明效果,同时可以加一些其他特效,比如模糊化等,但我试了半天也没有搞定,完全复制代码,也没有出现这个效果,这个现在可能不是很重要的东西,等以后有时间再研究补充吧。

 

转自:http://zxshean.spaces.live.com/blog/

 

分享到:
评论

相关推荐

    Android API Demo 源码

    **Android API Demo 源码详解** Android API Demo 是一套由Google官方提供的示例代码库,旨在帮助开发者理解和学习Android平台的各种API功能。这个源码集合涵盖了从基础UI组件到高级服务和网络通信的多种技术,是...

    androidapi的Demo

    3. 动画系统:Android 4.2加强了动画系统,API Demos提供了多种动画效果,如属性动画、帧动画和视图动画,帮助开发者实现流畅的用户体验。 4. 感应器和位置服务:API Demos涵盖了加速度计、陀螺仪、GPS等传感器的...

    Android Api demo 4.2.2

    android4.2.2 的api demo

    Android_API_Demo_Clipping

    Android API Demo中的Clipping例子是一个很好的学习资源,帮助开发者深入理解如何在实际应用中使用这一功能。下面将详细解释Clipping的概念、API以及如何在代码中实现。 1. **Clipping概念**: Clipping是图形处理...

    api demo,包含android所有api的演示代码,这是4.2

    通过深入研究这些代码,开发者可以更好地理解Android系统的工作原理,提升开发效率,并且能快速适应新版本的API变化。 总之,Android API Demo是Android开发者不可或缺的学习资源,无论你是初学者还是经验丰富的...

    android_api_demo

    【Android_API_Demo】是一个专为Android初学者设计的实践项目,它包含了Android开发中常用API的各种示例代码,帮助开发者了解并掌握Android组件的使用方法。在这个项目中,你可以找到关于活动(Activity)、意图...

    Android camera API Demo

    `Android camera API Demo`是一个基础示例,旨在帮助开发者了解如何在应用程序中显示并处理来自摄像头的实时影像。这个Demo通常会涵盖基本的相机操作,如打开摄像头、预览图像、拍照以及关闭摄像头。下面将详细阐述...

    android apidemo

    通过深入研究Android API Demo项目,开发者不仅可以掌握基本的API用法,还能了解到更高级的特性和最佳实践。它是一个不断更新的资源库,随着Android版本的升级,新的API和功能示例也会被添加进来,使得开发者能够...

    Android API Demo 4.0

    android4.0API 的官方 Demo,非常适合用来熟悉android framework 层的各种 API,了解用 Android 来做应用可以实现那些功能,可以结合http://developer.android.com/guide/index.html一起看,比较适合新手入门。

    Android API Demo

    **Android API Demo** Android API Demo 是一个官方提供的示例代码集合,它包含了各种Android平台API的使用演示。这个项目旨在帮助开发者理解和学习如何在实际应用中有效地利用Android SDK中的各种功能和API。通过...

    百度地图android 开发API 含demo

    3. **BaiduMapApi_Docs_Android_1.3.4.zip**:文档资料包,包含了详细的API参考文档和使用指南。这些文档为开发者提供了详细的API接口说明、参数解释和使用示例,是学习和使用百度地图API的重要参考资料。通过查阅...

    openfire+asmack中文api+androidDemo

    【标题】"openfire+asmack中文api+androidDemo"涉及的是即时通讯(Instant Messaging, IM)技术在Android平台上的实现。Openfire是一款开源的XMPP服务器,而ASMACK是针对Android平台的XMPP库,它允许开发者在Android...

    Android google地图api Demo

    在这个名为"Android google地图api Demo"的项目中,我们将深入探讨如何使用Google Maps API在Android应用上实现一个简单的地图展示示例。 首先,我们需要在Google Cloud Console上注册一个新的项目,并启用Google ...

    安卓串口demo(android-serialport-api-android-serialport-api

    标题中的"安卓串口demo(android-serialport-api-android-serialport-api)"指的是一个用于Android系统的串口通信示例程序,它基于开源项目“android-serialport-api”。 这个开源项目是为了解决Android设备上串口...

    android-serialport-api 串口demo.zip

    这是很据android-serialport-api 自己简化的一个demo ,可以使用。原来android-serial-api的程序很多人反映都不能使用,所以自己写了这个,只有一个activity,可以做为你的学习参考。

    Android SipDemo( 网络电话的例子源码,android 2.3以上才能用)

    以下是关于SipDemo及其涉及的Android Sip API的知识点: 1. **SIP协议**:SIP是一种应用层控制协议,用于建立、修改和终止多媒体会话,如语音和视频通话。SIP允许用户通过互联网进行实时通信。 2. **Android Sip ...

    android studio调用API登录注册DEMO

    在Android开发中,Android Studio是Google提供的一款强大的集成开发环境(IDE),专为构建Android应用而设计。...学习这个DEMO,开发者可以掌握如何在Android应用中安全有效地调用API,实现用户认证功能。

    android arcgis demo

    通过对"android arcgis demo"的深入研究,开发者不仅可以学习到ArcGIS Android API的使用,还能掌握如何在Android应用中高效地集成和展示地理信息,这对于开发地图应用或者地理位置相关的服务具有极大的帮助。...

Global site tag (gtag.js) - Google Analytics