Android之四大组件之一-Activity(二)
来源:互联网 发布:python 寻找相似图片 编辑:程序博客网 时间:2024/04/28 19:15
这里简介一下Activity启动其它的Activity的方法(1)通过startActivity(Intent intent)启动Activity。
传递参数的方式:putExtra("key",values);
或者putExtras(Bundle);
获取参数的方式:getXxxExtra(key)
或者getExtras().getXxx()
注意:Xxx是数据类型
(2)通过startActivityForResult(Intent intent,int requestCode):
( 以指定的请求码启动Activity,而且程序将会等待新启动Activity的结果。
一般情况下,我们只需要保证requestCode>-1即可,
这样它都能收到result。但是如果在Aactivity中,
能够跳转到多个activiity,并且要接受到这多个
activity中的信息的时候,我们就要注意了,这时候,
requestCode就起大作用了,当你startActiviityForResult()的时候,
给每一个不同的activity一个独立的requestcode,
那么在你接受到result的时候就可以通过这个参数来判断,
结果是那个acitivity返回来的了)
启动的Activity重写onActivityResult()
被启动的Activity返回数据:setResult(int,Intent)
那么setResult()应该在什么时候调用呢?从源码可以看出,
Activity返回result是在被finish的时候,也就是说调用
setResult()方法必须在finish()之前。所以在
onPause、onStop、onDestroy方法中调用setResult()也
有可能不会返回成功,因为这些方法调用不一定是在
finish之前的,当然在onCreate()就调用setResult肯定
是在finish之前的,但是又不满足业务需要。
实际使用场景有两个:
(1)按BACK键从一个Activity退出来的,一按BACK,
android就会自动调用Activity的finish()方法,
方法:重写onBackPressed()方法,捕获BACK事件,
捕获到之后先setResult。代码:
@Override
public void onBackPressed()
{
Log.i(TAG, "onBackPressed");
setResult(Const.LIVE_OK);
super.onBackPressed();
}
(2)按点击事件中显式的调用finish()
intent.putExtra("result",et.getText().toString());
setResult(RESULT_OK, intent);
finish();
这里简介一下Activity启动其它的Activity的方法
传递参数的方式:putExtra("key",values);
或者putExtras(Bundle);
获取参数的方式:getXxxExtra(key)
或者getExtras().getXxx()
注意:Xxx是数据类型
(2)通过startActivityForResult(Intent intent,int requestCode):
( 以指定的请求码启动Activity,而且程序将会等待新启动Activity的结果。
一般情况下,我们只需要保证requestCode>-1即可,
这样它都能收到result。但是如果在Aactivity中,
能够跳转到多个activiity,并且要接受到这多个
activity中的信息的时候,我们就要注意了,这时候,
requestCode就起大作用了,当你startActiviityForResult()的时候,
给每一个不同的activity一个独立的requestcode,
那么在你接受到result的时候就可以通过这个参数来判断,
结果是那个acitivity返回来的了)
启动的Activity重写onActivityResult()
被启动的Activity返回数据:setResult(int,Intent)
那么setResult()应该在什么时候调用呢?从源码可以看出,
Activity返回result是在被finish的时候,也就是说调用
setResult()方法必须在finish()之前。所以在
onPause、onStop、onDestroy方法中调用setResult()也
有可能不会返回成功,因为这些方法调用不一定是在
finish之前的,当然在onCreate()就调用setResult肯定
是在finish之前的,但是又不满足业务需要。
实际使用场景有两个:
(1)按BACK键从一个Activity退出来的,一按BACK,
android就会自动调用Activity的finish()方法,
方法:重写onBackPressed()方法,捕获BACK事件,
捕获到之后先setResult。代码:
@Override
public void onBackPressed()
{
Log.i(TAG, "onBackPressed");
setResult(Const.LIVE_OK);
super.onBackPressed();
}
(2)按点击事件中显式的调用finish()
intent.putExtra("result",et.getText().toString());
setResult(RESULT_OK, intent);
finish();
0 0
- Android之四大组件之一-Activity(二)
- Android四大组件之Activity(二)
- android四大组件之Activity(二)
- Android之四大组件之一-Activity(一)
- Android之四大组件之一-Activity(三)
- Android之四大组件之一-Activity(四)
- Android之四大组件之一-Activity(五)扩展
- Android之四大组件之一-Activity(六)扩展
- Android之四大组件之一-Service(二)
- Android四大组件之一:Activity
- android 四大组件之一Activity
- Android四大组件之一:Activity
- Android四大组件之一:Activity
- Android 四大组件之一------Activity
- Android四大组件之一:Activity
- Android之四大组件之一-BroadcastReceiver的使用(二)
- Android应用程序四大组件之Activity(二)
- Android 四大组件学习之Activity二
- 辞职后的自我剖析
- 强大的正则表达式
- GCD与多线程编程
- Android白话启动篇(Android booting process)
- Thinking in Java 第7章 多形性 总结
- Android之四大组件之一-Activity(二)
- 如何下载谷歌地球高程为SHP格式的等高线
- 每日一linux命令(22)-------find 命令的参数详解
- Codeforces 679B - dp
- 关于使用Android studio签名打包生成APK
- Uncaught TypeError: Cannot set property 'innerHTML' of null 学习Chrome插件时,要在弹出页面中显示当前时间,结果怎样也显示不出来 看
- mysql iot 主键自增列问题
- 消息队列-ActiveMQ学习笔记(一)-JMS介绍与环境搭建
- Volley简单的使用