安卓学习之Activity之间传递数据

1.通过intent传递数据

通过Intent传递方法核心就是通过putEntry来传递方法。

传递代码:

intent.putExtra("KEY_HELLO","helloword");

接受代码:

 Intent intent=getIntent();
 String value=intent.getStringExtra("KEY_HELLO");

不过需要注意的是,在实际过程中,往往是很多个人写不同的Activity,那么为了保证

key统一,就必须随时沟通,程序就变的不太好维护,我们可以使用下面的办法。

2.静态工厂设计模式传递数据

我们让Activity保留自己的key值,并且封装成一个静态函数,那么

我们只需要传递的value就行了。

看下面的代码

 //使用一个静态方法保证所有的Key值一样
    public static Intent newIntent(Context context,String value)
    {
        Intent intent=new Intent(context,ActivityDemo.class);
        intent.putExtra("KEY",value);
        return intent;
    }
 Intent intent=ActivityDemo.newIntent(getApplicationContext(),"hello");

返回数据给之前的Activity

这时候我们就需要用到两个方法:

startActivityForResult(intent,0);//第二个参数是请求码

protected void onActivityResult(int requestcode,int resultcode,   Intent data)

需要注意的是第二个函数是只有第二个页面退出时才会调用。

代码如下:

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                intent.putExtra("result","hello   ");
                setResult(0,intent);
                finish();//关闭当前Activity
            }
        });
 protected void onActivityResult(int requestcode,int resultcode,Intent data)
  {
     super.onActivityResult(requestcode,resultcode,data);
      if(requestcode==0&&data!=null)
      {
          String result=data.getStringExtra("result");
          Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG);
      }
  }


                               
                               

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值