活动间的数据传递

数据传递包含数据的发送与接收
一、向一个活动传递数据(startActivity)
1、数据发送
使用Intent的putExtra的系列重载方法。可以把想要传递的数据暂存在Intent中。

bt5.setOnClickListener(new View.OnClickListener() {
   @Override
    public void onClick(View v) {
      Intent intend=new Intent(MainActivity.this,resultactivity.class);
      String data="hello luowei!!!!";
      intend.putExtra("extra_data",data);
      startActivity(intend);
        }
  });

2、数据接收
启动了另一个活动后,只需要把这些数据再从Intent中取出就可以了。

 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);               setContentView(R.layout.activity_resultactivity);
     Intent intent=getIntent();
     //用于获取启动本活动的Intent
     String data=intent.getStringExtra("extra_data");
     /*
     根据相应的getXXX函数来Intent获取数据。
         getStringExtra():获取字符串型的数据。
         getIntExtra():获取整型的数据。
         getBooleanExtra():获取布尔型的数据。
     */
     TextView tv=(TextView)findViewById(R.id.text1);
     tv.setText(data);
    }

二、向上一个活动返回数据(startActivityForResult)
1、启动一个活动并数据发送

bt5.setOnClickListener(new View.OnClickListener() {
   @Override
    public void onClick(View v) {
      Intent intend=new Intent(MainActivity.this,resultactivity.class);
      String data="hello luowei!!!!";
      intend.putExtra("extra_data",data);
      startActivityForResult(intend,1);
      //第二个参数是请求码,用于在回调中判断数据的来源,只要是唯一值就可以了。
        }
  });

2、返回数据给上一个活动
当前活动是使用startActivityForResult启动的,当前活动被销毁时,将毁掉上一个活动的onActivityResult()方法。
在当前活动中,将需要返回的数据存放在构建的intent中。
然后调用setResult函数,向上一个活动返回数据。第一个参数用于向上一个活动返回处理结果,一般只有REUSLT_OK和RESULT_CANCELED。第二个参数传递带有数据的Intent。
最后使用finish()结束当前活动即可。
返回的两种方式:
(1)按键使用监听事件的方式调用

bt5.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
 Intent in=new Intent();
        in.putExtra("data_ret","hello,this is the message returned");
    setResult(RESULT_OK,in);
    finish();//销毁当前活动。
        }
  });

(2)通过Back键返回到上一个活动时,会调用onBackPressed回调函数。

  @Override
  public void onBackPressed() {
       Intent in=new Intent();
        in.putExtra("data_ret","hello,this is the message returned");
        setResult(RESULT_OK,in);
        finish();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值