Android 编程技巧之 ----- 最佳 Activity 数据传递


写一下最近学习的一个很简单的Activity间跳转传递数据的方法,由于在实际开发中(听说而已,目前学生党= =) 接手到一个新项目的几率比较小,

大多数时候都是接手一个旧的项目来进行一些开发维护或者功能添加的工作,然后试想有这么一个场景,你负责的Activity页面,这里假设叫做

SecondActivity,需要其他同事负责的Activity页面传递的数据,这样无非两种解决办法:

1、你自己跑去告诉你的同事,我需要哪两个参数,然后跟同事约定好intent.putExtra()方法中放入什么键,是param_1或者是data_1。。。

2、你的同事跑过来问你需要传递什么数据给你,然后跟你约定好intent.putExtra()方法中放入什么键,是param_1或者是data_1。。。

这两种方式无非都要耗费时间跟人力 (嗯,很有道理) ,有没有什么办法简化这种繁琐的你问我答或者我问你答的操作呢?当然有,往下看。


可以在你负责的SecondActivity中添加一个声明为public static的函数,用于给其他Activity调用以实现界面跳转并传递数据,具体如下:

public static void infoTransport(Context context, String data1, String data2)
    {
        Intent intent = new Intent(context, SecondActivity.class);
        intent.putExtra("param_1", data1);
        intent.putExtra("param_2", data2);
        context.startActivity(intent);
    }
上面的函数将Activity跳转以及intent数据传递封装起来,其他Activity只需通过SecondActivity类名传递三个参数,分别是上下文对象context,

SecondActivity需要的两个数据data1和data2,即可实现页面跳转和数据传递,如此一来,我们根本不需要向其他同事询问intent传递时使用的

是什么键 (即上面的param_1和param_2) ,因为这是自己提供给其他同事的函数接口,自己用什么键值都可以,其他同事也不用关心需要设置什么

键,只需调用你的接口,选好数据类型对象赋给函数即可,如果公司内部有规定好每个需要数据的Activity 的函数接口命名规则,那就更好了,这样

可以提高工作效率,也减少了同事过来询问你的时间,利人利己啊,神器啊有没有!


最后看下监听的代码跟运行结果:

这是FirstActivity中button的监听事件

private void buttonDeal() {
        button = (Button) findViewById(R.id.button_1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SecondActivity.infoTransport(FirstActivity.this, "Hello", "Hi");
            }
        });
    }


同时在SecondActivity的oncreate()函数中用Log.d()打印收到的intent数据

<span style="white-space:pre">	</span>Intent intent = getIntent();
        String data1 = intent.getStringExtra("param_1");
        String data2 = intent.getStringExtra("param_2");
        Log.d("SecondActivity", "Intent result:"+data1+"  "+data2);


运行程序,首先看到FirstActivity中的button1,我们在后台先设置Log过滤器SecondActivity,然后点击button1,可以看到后台打印出了传递过来的数据



谢谢阅读!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值