您的位置:首页 > 移动开发 > Android开发

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

2015-12-25 17:48 441 查看
写一下最近学习的一个很简单的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,可以看到后台打印出了传递过来的数据







谢谢阅读!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: