ICode9

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

Activity之间通信、跳转(Intent)

2021-08-03 23:33:36  阅读:185  来源: 互联网

标签:跳转 bundle intent Bundle Activity Intent 数据


Activity之间通信、跳转(Intent)

1.不带数据跳转


                Intent intent = new Intent() ;
//              Intent intent = new Intent(MainActivity.this,SecondActivity.class) ;
                intent.setClass(MainActivity.this,SecondActivity.class) ;
                startActivity(intent);

2.带数据或多个数据

2.1跳转

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                //容器
                Bundle bundle = new Bundle() ;
                //往 Bundle 容器里面添加数据
                bundle.putInt("number",123456789);
                bundle.putString("string","Hello World");
                //绑定 intent
                intent.putExtras(bundle) ;
                startActivity(intent);

2.2接收

//获取 Intent
        Intent intent = getIntent();
        //获取 Bundle 容器
        Bundle bundle = intent.getExtras() ;
        //从 Bundle 容器中取出数据
        String s = bundle.getString("string") ;
        int i = bundle.getInt("number") ;

3带数据跳转,带数据返回

3.1带数据跳转

 Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                //容器
                Bundle bundle = new Bundle() ;
                //往 Bundle 容器里面添加数据
                bundle.putString("string","Hello World");
                //绑定 intent
                intent.putExtras(bundle) ;
                startActivityForResult(intent,101);

同时要实现 onActivityResult 方法来接收处理返回的数据

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
		//根据 requestCode 和 resultCode 来判断是否是对应的 Activity 跳转、返回的数据,进行处理。
        if (requestCode == 101 && resultCode == 202){
            String s = data.getStringExtra("back") ;
            Log.e("s=====",s) ;
        }else {
            Log.e("返回的数据:","不见了???");
        }

    }

3.2接收处理数据,并带上数据返回(到3.1 onActivityResult方法中处理返回的数据)

//获取 Intent
        Intent intent = getIntent();
        //获取 Bundle 容器
        Bundle bundle = intent.getExtras() ;
        //从 Bundle 容器中取出数据
        String s = bundle.getString("string") ;
        //处理数据
        Log.e("string : ",s) ;
        // intent 添加数据,并返回
        intent.putExtra("back","返回的数据");
        setResult(202,intent);

标签:跳转,bundle,intent,Bundle,Activity,Intent,数据
来源: https://blog.csdn.net/m0_57896648/article/details/119360107

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

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

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

ICode9版权所有