本文出自郭霖大神的<<第一行代码>>.
鄙人不才,抄做笔记,以供回顾,删改之处,如有错误,还望见谅.
启动活动
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的同事.
只需要换一种写法
public class SecondActivity extends BaseActivity{
public static void actonStart(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()方法,所有SecondActivity中需要的数据都是通过actionStart()方法中的参数传递过来的,然后再把它们存储到Intent中,最后调用startActivity()方法启动SecondActivity.
这样写的好处是,SecondActivity所需要的数据在方法参数中全部体现出来,不用阅读SecondActivity中的代码,也能知道启动SecondActivity需要传递哪些数据.
简化启动活动的代码
public void onClick(View v){
SecondActivity.actionStart(FirstActivity.this,"data1","data2");
}
养成一个习惯,给每个编写的活动都添加类似的启动方法.