Intent 意图 用于Activity之间的数据传递

用于Activity之间的数据传递

    在起始Activity中,发送数据

      protected void onCreate(Bundle saveInstanceState){

          super.onCreate(saveInstanceState);

          setContentView(R.layout.thisactivity);

          Intent intent = new Intent();

          //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity

          intent.setClass(ThisActivity.this,TargetActivity.class);

          //绑定数据

          intent.putExtra("username",username);//也可以绑定数组

          intent.putExtra("userpass",userpass);

          //打开目标Activity

          startActivity(intent);

      }

    在目标Activity中,接收数据:

      protected void onCreate(Bundle saveInstanceState){

          super.onCreate(saveInstanceState);

          setContentView(R.layout.targetactivity);     

          //获得意图

          Intent intent = getIntent();

          //读取数据

          String name = intent.getStringExtra("username");

          String pass = intent.getStringExtra("userpass);

      }

也可以适用Bundle(捆)

    在起始Activity中,发送数据:

      protected void onCreate(Bundle saveInstanceState){

          super.onCreate(saveInstanceState);

          setContentView(R.layout.thisactivity);     

          Intent intent = new Intent();

          //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity

          intent.setClass(ThisActivity.this,TargetActivity.class);

          //一次绑定多个数据

          Bundle bundle = new Bundle();

          bundle.putString("username",username);

          bundle.putString("userpass",userpass);

          intent.putExtras(bundle);

          //打开目标Activity

          startActivity(intent);

      }

    在目标Activity中,接收数据:

      protected void onCreate(Bundle saveInstanceState){

          super.onCreate(saveInstanceState);

          setContentView(R.layout.targetactivity);     

          //获得意图

          Intent intent = getIntent();

          //读取数据

          Bundle bundle = intent.getExtras();

          String name = bundle.getString("username");

          String pass = bundle.getString("userpass");

      }

当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,也可以使用startActivityForResult(Intent intent, int requestCode);方法。

    在起始Activity中,发送数据:

      protected void onCreate(Bundle saveInstanceState){

          super.onCreate(saveInstanceState);

          setContentView(R.layout.thisactivity);     

          Intent intent = new Intent();

          //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity

          intent.setClass(ThisActivity.this,TargetActivity.class);

          //绑定数据

          intent.putExtra("username",username);//也可以绑定数组

          intent.putExtra("userpass",userpass);

          //打开目标Activity

          startActivityForResult(intent,1);

      }

      //需要重写onActivityResult方法

      protected void onActivityResult(int requestCode, int resultCode, Intent intent){

         super.onActivityResult(requestCode,resultCode,intent);

         //判断结果码是否与回传的结果码相同

         if(resultCode == 1){

            //获取回传数据

            String name = intent.getStringExtra("name");

            String pass = intent.getStringExtra("pass);

            //对数据进行操作

            ......

         }

    在目标Activity中,接收数据:

      protected void onCreate(Bundle saveInstanceState){

          super.onCreate(saveInstanceState);

          setContentView(R.layout.targetactivity);     

          //获得意图

          Intent intent = getIntent();

          //读取数据

          String name = intent.getStringExtra("username");

          String pass = intent.getStringExtra("userpass);

          //从EditText中获取新的数据给name和pass

          name = editText1.getText().toString();

          pass = editText2.getText().toString()

          //数据发生改变,需要把改变后的值传递回原来的Activity

          intent.putExtra("name",name);

          intent.putExtra("pass",pass);

          //setResult(int resultCode,Intent intent)方法

          setResult(1,intent);

          //销毁此Activity,摧毁此Activity后将自动回到上一个Activity

          finish();

      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值