Android使用Intent让不同Activity切换,并传递参数

基本用法:

显式

Intent intent=new Intent(Activity甲.this,Activity乙.class);

startActivity(intent);

  

传递参数

Intent intent=new Intent(Activity甲.this,Activity乙.class);
intent.putExtra("参数名","要传的价值,可以是任何类型");
startActivity(intent);

获取参数

在目标Activity中

Intent intent=getIntent();
String data=intent.getStringExtra("参数名");

进阶:

除了startActivity方法外,还可以使用startActivityForResult方法,感觉类似于观察者模式

startActivityForResult方法第一个参数还是intent实例,第二个参数为自定义的requestCode代码,定以后可以在Activity乙返回时(按按钮或Back键)作相对应的操作。

需重写Activity甲中的onActivityResult函数

在Activity甲中

Intent intent=new Intent(Activity甲.this,Activity.乙.class);
startActivityForResult(intent,1);

在Activity乙中通过按钮返回Activity甲

Button btnBack=(Button)findViewById(R.id.btnBack);

btnBack.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v){

        Intent intent=new Intent();
        setResult(RESULT_OK,intent);
        finish();        

    }

});

在Activity乙中通过返回按钮Back(机器上的)返回Activity甲

需重写onBackPressed函数

@Override
public void onBackPressed(){

    Intent intent=new Intent();
    intent.putExtra("参数名","值");
    setResult(RESULT_OK,intent);
    finish();

}

  

最后在Activity甲中重写onActivityResult函数

@Override
protected void on ActivityResult(int requestCode,int resultCode,Intent data){

    switch(requestCode){
        case 1:
            if(resultCode=RESULT_OK){

                String returnData=data.getStringExtra("参数名");

            }

    }

}

  

其中case 1就是在建立intent时所存放的第二个参数,为requestCode

finish

时间: 2024-08-06 09:32:00

Android使用Intent让不同Activity切换,并传递参数的相关文章

android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口

Parcelable,内存单位,跨进程使用,或者intent传递对象的时候使用.android中用Intent传数据,如果用传递的是一个对象,就将对象实现Parcelable接口,而不是将对象序列化. /** * 预登记 出席领导回传给预登记页面 Javabean * Created by COCO on 2017/3/4. */ public class GovernmentTakeLeaderInfo implements Parcelable{//Parcelable,内存单位,跨进程使用

[android] 练习样式主题自定义activity切换动画

主要练习了自定义样式和主题,继承android系统默认的样式并修改,练习xml定义淡入淡出动画 anim/fade_in.xml <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="3000" android:from

android 入门-Service实时向Activity通过BroadcastReceiver传递数据

引文: http://www.cnblogs.com/linjiqin/p/3147764.html <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layou

Activity 间 bundle 传递参数

activity_main.xml <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent

Android中使用overridePendingTransition实现Activity切换动画

方法说明: public void overridePendingTransition(int enterAnim, int exitAnim); enterAnim:第二个Activity进入的动画 exitAnim:第一个Activity退出的动画 ①.在res/anima文件夹下新建两个动画文件,分别命名为alpha_enter.xml和alpha_exit.xml. alpha_enter.xml(渐入效果) <?xml version="1.0" encoding=&q

Android开发系列(十三):Intent实现Activity之间的转换以及startActivityForResult传递参数

一.Intent实现Activity之间的切换 1.构造函数法: Intent intent = new Intent(this , OtherActivity.class); //两个参数:第一个是上下文对象,第二个是要切换的Activity的class字节码 startActivity(intent); 2.setClass方法: Intent intent = new Intent(); intent.setClass(this, OtherActivity.class); //设置要激活

android之activity切换

转自:http://www.cnblogs.com/leipei2352/archive/2011/08/09/2132096.html android中每个activity通常描述了一个屏幕上的所有画面(窗口级别的activity除外),因此通常手机屏幕两个界面(准确些说是整个屏幕)之间的切换就涉及到了activity的切换.     假定有两个activity,分别是Activity01和Activity02,现在Activity01页面中有一个按钮,点下之后会切换到Activity02.并

Android中Activity切换时共享视图元素的切换动画(4.x兼容方案)

同时发布在我的博客 点此进入 开始 上一篇讲了使用 Google 的 AppCompat-v7 来实现 Activity 切换时实现共享视图元素的切换动画.这一篇介绍两个可以兼容 4.x 的两个第三方方案. 上一篇:Android中Activity切换时共享视图元素的切换动画(5.0以上) 方案一:PreLollipopTransition 首先在 build.gradle 配置文件添加这个库依赖 dependencies { compile 'com.kogitune:pre-lollipop

Android的Activity切换动画特效库SwitchLayout,视图切换动画库,媲美IOS

由于看了IOS上面很多开发者开发的APP的视图界面切换动画体验非常好,这些都是IOS自带的,但是Android的Activity等视图切换动画并没有提供原生的,所以特此写了一个可以媲美IOS视图切换动画的Android视图切换动画特效库!SwitchLayout!可以说是目前Android上第一个,也是唯一的一个强大的视图切换动画库引擎! 作者:谭东 QQ:852041173 项目开源!推荐使用jar包形式! 没有经过作者允许,不可修改项目库源码自行发布. 如果你的项目中使用了SwtichLay