您的位置:首页 > 其它

如何正确的启动一个需要传递参数的Activity。

2013-04-28 16:41 435 查看
通常开发一个中大型应用,可能会有好几个工程师各司其职,分别开发不同的模块,并且都有自己的Activity,有时我们会碰到一些麻烦的问题,比如不同成员写的Activity之间如果要跳转,常常会不知道如何传递正确的参数(有时的确需要)。代码如下:

public class SourceActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.source);
Intent i = new Intent(this, TargetActivity,class);
i.putExtra("username", "abcdefg");
i.putExtra("password", "123456");
startActivity(i);
}
}

public class TargetActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.target);

String username = getIntent().getStringExtra("username");
String password = getIntent().getStringExtra("password");
}
}


在上面这种传统的跳转Activity的代码中,我们发现A->B之间,必须有某种协议来协定需要传送的参数的名字(如username)和类型。那就必须借助于在目标Activity中写上注释或阅读源代码才能知道如何才能正确的打开目标Activity。

那么,到底有什么方法可以非常方便的打开一个新的Activity,而无须去口头沟通或费时的查看注释或源代码呢?总结自己的项目经验,可参考如下代码:

public class SourceActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.source);

TargetActivity.startTheActivity(this, "abcdefg", "123456");
}
}

public class TargetActivity extends Activity{

/*
* 跳转到这个Activity,username是用户名,password是密码
*/
public static void startTheActivity(Context context, String username, String password) {
Intent i = new Intent(context, TargetActivity,class);
i.putExtra("username", "abcdefg");
i.putExtra("password", "123456");
context.startActivity(i);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.target);

String username = getIntent().getStringExtra("username");
String password = getIntent().getStringExtra("password");
}
}


如上代码,其中只是使用了一些小的技巧,但却使得在团队合作中不同的人负责不同的Activity和模块,正确无缝的跳转到其他成员写的Activity。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐