ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

安卓笔记Activity的生命周期数据跳转

2021-06-03 21:58:55  阅读:161  来源: 互联网

标签:安卓 跳转 bundle Intent Bundle Activity intent new


Activity的生命周期在这里插入图片描述

如上图

Activity的跳转和数据传递

跳转

 //显示跳转方法1最常用
 //之前我们经常使用的Intent,他的构造方法有两个参数
 //第一个参数从哪里开始跳转(context),跳转去哪里(context)
 Intent intent = new Intent(AAcitivity.this,BAcitvity.class);
 startActivity(intent);
//显示跳转方式2,反射
//                Intent intent = new Intent();
//                intent.setClass(AAcitivity.this,BAcitvity.class);
//                startActivity(intent);
                //显示跳转方式3
                //AndroidStudio路径较难把握(复制了三个路径还是不行。。。。),感觉不好用,原来的类的单词还拼错了
//                Intent intent = new Intent();
//                intent.setClassName(AAcitivity.this,"com.example.myapplication.jump.BAcitvity");
//                startActivity(intent);
//                //显示跳转方法4
//                Intent intent = new Intent();
//                intent.setComponent(new ComponentName(AAcitivity.this,"com.example.myapplication.jump.BAcitvity"));
//                startActivity(intent);

隐式跳转还需要注意在Manifest上对应的的启动activity上的标签下增加这一段在这里插入图片描述

数据传递

统一都写在了一个按钮的点击事件中

//来简单解释一下bundle的原理,我们要通过intent传给另一个Activity,intent里可以带一个bundle,而bundle塞了数据
                Intent intent = new Intent(AAcitivity.this,BAcitvity.class);
                //数据传递通过bundle,putExtra()方法本质上也是new了一个Bundle
                Bundle bundle = new Bundle();
                bundle.putString("name","死小孩");
                bundle.putInt("age",88);
                //putExtras()方法可以只塞bundle
                intent.putExtras(bundle);
                startActivity(intent);

在B上写了个TextView,用来接收数据

在这里插入图片描述

startActivityForResult:启动Activity,结束后返回结果

在后一个Activity完成使用后,当我们按下返回键时,我们希望从B回调数据给A,那么我们可以用这个方法
A中的代码

 Intent intent = new Intent(AAcitivity.this,BAcitvity.class);
                //数据传递通过bundle,putExtra()方法本质上也是new了一个Bundle
                Bundle bundle = new Bundle();
                bundle.putString("name","死小孩");
                bundle.putInt("age",88);
                //putExtras()方法可以只塞bundle
                intent.putExtras(bundle);
                //intent本身有意图的意思,启动之后放入这个intent就可跳转
                //第二个参数:请求码
                //作用:将回调的数据进行分组,在多个事件回调数据时,我们可以根据请求码来判断我们在什么时候回调了什么数据,从而实现逻辑分组
                startActivityForResult(intent,0);


//如何在A中接受数据呢?
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        ToastUtil.showMsg(AAcitivity.this,data.getExtras().getString("title"));
    }

B中的代码

 private TextView mTvTitle;
    private Button mBtnFinish;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_b);
        mTvTitle = findViewById(R.id.tv_show);
        mBtnFinish = findViewById(R.id.btn_finish);
        //在BActivity中,就要接收传过来的intent和Extras,两边的key需要一致
        Bundle bundle = getIntent().getExtras();
        String name = bundle.getString("name");
        int age = bundle.getInt("age");

        mTvTitle.setText(name+","+age);
        mBtnFinish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //回调数据时,我们任然使用bundle和intent回传数据
                Intent intent = new Intent();
                Bundle bundle1 = new Bundle();
                bundle1.putString("title","我又回来了");
                intent.putExtras(bundle1);
                setResult(AAcitivity.RESULT_OK,intent);
                finish();
            }
        });



    }
}

标签:安卓,跳转,bundle,Intent,Bundle,Activity,intent,new
来源: https://blog.csdn.net/weixin_50026222/article/details/117535349

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有