余老师带你学习智能终端-Android App开发第四章第三节Activity跳转和数据传递

Activity的几种跳转:

一:显式调用方法

方法一:

Intent intent=new Intent(本类,将要跳转的类);   
startActivity(intent);

方法二:

Intent intent2=new  Intent();
intent2.setClass(本类,另外将要跳转的类);    (intent2.setClass(MainActivity.this,shoyeActivity.class);)
startActivity(intent2);

方法三:(此方式可用于打开其它的应用)

Intent intent2=new  Intent();
intent2.setClassName(this,“将要跳转界面的名字”);
startActivity(intent2);

方法四:

Intent intent2=new  Intent();
intent2.setComponent(new ComponentName(MainActivity.this, OtherActivity.class));
startActivity(intent2);

二:隐式调用方法(只要action、category、data和将要跳转到的Activity在AndroidManifest.xml中设置的匹配就OK)

<activity
            android:name="com.saiermeng.intent.SecondActivity"
            android:label="@string/title_activity_second" >
            <intent-filter >
                <action android:name="com.saiermeng.intent.open02"/>
      //在data中设置了哪些,则哪些必须匹配,没设置的可以任意写          
<data android:scheme="http"
                    android:host="www.saiermeng.com"
                    android:port="8080"
                     android:path="/java"
                    ></data>
//因为startActivity()方法中内置了该类别,索引必须加上此类别,否则android.intent.category.DEFAULT无法跳转
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

三:跳转到另一个Activity后,当返回时能返回数据

  • 1.在跳转的Activity端,调用startActivityForResult(intent2, 2),跳转到下一个Activity,其中第一个参数为传入的意图对象,第二个为设置的请求码;

  • 2.跳转到第二个Activity后,调用setResult(10, intent)方法可返回上一个Activity,其中第一个参数为结果码,第二个为传入的意图对象;

  • 3.在第一个Activity通过onActivityResult()方法获得返回的数据。
    在这里插入图片描述
    在这里插入图片描述

Activity之间的数据传递

1、向目标Activity传递数据:

 Intent intent=new Intent(this,Main2Activity.class);
         //可传递多种类型的数据
         intent.putExtra("name","张三");
         intent.putExtra("age",12);
         startActivity(intent);

2、在目标Activity中取出数据

  Intent intent=getIntent();
         //用getXxxExtra()取出对应类型的数据。取出String只需要指定key
         String name=intent.getStringExtra("name");
         //取出int要指定key,还要设置默认值,当intent中没有该key对应的value时,返回设置的默认值
         int age=intent.getIntExtra("age",0);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值