如何正确的启动一个需要传递参数的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);
		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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值