启动活动的方法相信你已经非常熟悉了,首先通过 Intent 构建出当前的“意图” ,然后
调用 startActivity()或 startActivityForResult()方法将活动启动起来,如果有数据需要从一个活
动传递到另一个活动,也可以借助 Intent 来完成。
假设 SecondActivity 中需要用到两个非常重要的字符串参数,在启动 SecondActivity 的
时候必须要传递过来,那么我们很容易会写出如下代码:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra(“param1”, “data1”);
intent.putExtra(“param2”, “data2”);
startActivity(intent);
这样写是完全正确的,不管是从语法上还是规范上,只是在真正的项目开发中经常会有
对接的问题出现。比如 SecondActivity 并不是由你开发的,但现在你负责的部分需要有启动
SecondActivity 这个功能,而你却不清楚启动这个活动需要传递哪些数据。这时无非就有两
种办法,一个是你自己去阅读 SecondActivity 中的代码,二是询问负责编写 SecondActivity
的同事。你会不会觉得很麻烦呢?其实只需要换一种写法,就可以轻松解决掉上面的窘境。
修改 SecondActivity 中的代码,如下所示:
public class SecondActivity extends BaseActivity {
public static void actionStart(Context context, String data1, String data2) {
Intent intent = new Intent(context, SecondActivity.class);
intent.putExtra(“param1”, data1);
intent.putExtra(“param2”, data2);
context.startActivity(intent);
}
……
}
我们在 SecondActivity 中添加了一个 actionStart()方法,在这个方法中完成了 Intent 的构
建,另外所有 SecondActivity 中需要的数据都是通过 actionStart()方法的参数传递过来的,然
后把它们存储到 Intent 中,最后调用 startActivity()方法启动 SecondActivity。
这样写的好处在哪里呢?最重要的一点就是一目了然,SecondActivity 所需要的数据全
部都在方法参数中体现出来了,这样即使不用阅读 SecondActivity 中的代码,或者询问负责
编写 SecondActivity 的同事,你也可以非常清晰地知道启动 SecondActivity 需要传递哪些数
据。 另外, 这样写还简化了启动活动的代码, 现在只需要一行代码就可以启动 SecondActivity,
如下所示:
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SecondActivity.actionStart(FirstActivity.this, “data1”, “data2”);
}
});
养成一个良好的习惯,给你编写的每个活动都添加类似的启动方法,这样不仅可以让启
动活动变得非常简单,还可以节省不少你同事过来询问你的时间。
相关文章
- 在Eclipse中向Android项目添加活动的最佳方式是什么?
- MBR、主引导扇区,主分区、扩展分区、逻辑分区,活动分区、引导分区、系统分区、启动分区的区别详解
- PowerShell脚本源码输出到文件的最佳写法
- 如何在活动启动时滚动到ScrollView中的底部
- 在对其应用程序脚本进行更改后重新启动node.js服务器的最佳方法是什么
- 无法启动活动,android.database.sqlite。SQLiteException:在编译时没有这样的表:从表中选择*。
- 代码段图书,掌握网页开发的最佳路径,京东活动,满200就减100了,该出手了。
- 按HOME后重新启动应用程序时如何返回最新启动的活动?
- 硬盘的那些事(主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区、引导扇区、MBR等
- 第一行安卓代码——活动的最佳实践2.6