Activity的跳转

启动跳转Activity:

        //创建意图对象
        Intent intent =new Intent(当前视图类.this, 要跳转到的视图类.class);
        //启动跳转
        startActivity(intent);

其中第一个参数是从哪一个视图开始跳转,第二个参数为跳到哪一个视图

简易写法:startActivity(new Intent(this, 要跳转到类.class));

跳转时传递数据:

Intent intent = new Intent(this, Main2Activity.class); //当前类,和要跳转的类
intent.putExtra(KEY_NAME, "死鬼睡着了");  //第一个参数为Key键名,第二个为value值
startActivity(intent); //启动跳转

在跳过去以后的类里编写:

// 获取上一个activity传递过来的 intent 对象
Intent intent = getIntent();
// 获取intent中带过来的值
String s = intent.getStringExtra(MainActivity.KEY_NAME); //值为上面传过来的键名 String为数据类型

传过来的值是什么类型就更改为什么字眼

跳转时传递对象数据:

该方法和上面的区别是,上面传递的是一个字符串之类的基本类型数据,而该方法则是

传递一个对象的数据

// Bundle 传递数据
Bundle bundle = new Bundle();
User user = new User(0, "宋吉吉", "北京朝阳区");  //声明要传递的对象
// 存储序列化数据,被传递的对象必须需要实现 implements Serializable 
bundle.putSerializable(KEY_USRE, user); //设置键名和value值
Intent intent = new Intent();
// 设置意图
intent.setClass(this, Main2Activity.class);   
// 存储数据
intent.putExtras(bundle);
// 启动activity
startActivity(intent);

在跳过去以后的类里编写:

//获取Bundle对象
Bundle bundle = intent.getExtras();
//利用键名获取传递过来的对象
User user = (User) bundle.getSerializable(MainActivity.KEY_USRE);


跳转过去以后,当前Activity销毁后进行传递值:

首先在跳转的类里编写:

//第一个参数为跳转的Intent 第二个参数为自定义的常量,数值大于0即可,该示例的值是0x01
startActivityForResult(new Intent(this,Test.class), REQUEST_CODE);

跳转过去以后的处理完所有数据需要销毁时编写:

        // 创建 intent对象
        Intent intent = new Intent();
        // 在intent对象保存数据,第一个参数为自定义Key值
        intent.putExtra(KEY_TEST, "我是从Test传过来的值");
        // 设置结果集
        setResult(Activity.RESULT_OK, intent);
        // 销毁activity
        finish();

然后在一开始跳转的类里编写一个方法:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // 判断请求码  结果码  数据载体不为空
        if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK && data != null) {
            // 获取传递过来的值,参数为传递过来数据的KEY值
            String blog = data.getStringExtra(Test.KEY_TEST);
            // 利用获取到的值给TextView设置文本
            mTextView.setText(blog);
        }
    }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值