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的遍历方法


下一篇:缓冲区大小及限制