在开发过程中,启动活动是最常见的操作,当然我们很熟悉了,无非就是:首先通过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中的代码,如下:
public class ScondActivity 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了,如下:
button.setOnClickListener(new OnClickListener(){
public void onClick(View v){
SecondActivity.actionStart(FirstActivity.this,"data1","data2");
}
});
养成这样的习惯,在开发中就会事半功倍了.方便他人,成就自己!!!