如何正确的启动一个需要传递参数的Activity。
2013-04-28 16:41
435 查看
通常开发一个中大型应用,可能会有好几个工程师各司其职,分别开发不同的模块,并且都有自己的Activity,有时我们会碰到一些麻烦的问题,比如不同成员写的Activity之间如果要跳转,常常会不知道如何传递正确的参数(有时的确需要)。代码如下:
在上面这种传统的跳转Activity的代码中,我们发现A->B之间,必须有某种协议来协定需要传送的参数的名字(如username)和类型。那就必须借助于在目标Activity中写上注释或阅读源代码才能知道如何才能正确的打开目标Activity。
那么,到底有什么方法可以非常方便的打开一个新的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。
相关文章推荐
- 安卓入门 使用android创建一个项目 从启动activity中响应按钮事件 启动另一个activity 并传递参数
- 一个activity启动另一个activity并传递参数
- 在只需要一个指定正确的参数的情况下如何防止传入其他干扰的参数
- Android深入探究笔记之二 -- 打开一个新的 Activity 并传递参数与如何响应控件的点击事件 .
- 如何启动一个AIR移动应用及向它传递参数
- Android深入探究笔记之二 -- 打开一个新的 Activity 并传递参数与如何响应控件的点击事件
- Objective-C 一个方法如何传递多个参数?
- Sqlserver中传递列参数需要注意的一个小细节
- Android应用开发(三):如何完成Activity之间的传递参数
- 如何向一个Fragment传递参数---setArguments方法的介绍
- 考虑下列生成二进制的过程,编译器被用来生成单个单元的目标代码,链接器被用来将多个目标单元合并成一个程序二进制,链接器如何改变指令和数据到内存地址的绑定?需要什么信息从编译器传递给链接器,以协助完成链接
- 以singleTask或singleInstance方式加载的activity如何接收intent传递过来的的参数
- 智遥工作流,调用SAP RFC,如何传递一个内表参数。
- Android中一个APP启动另一个APP并传递参数
- 如何向一个Fragment传递参数---setArguments方法的介绍
- angularjs项目需要从一个页面跳转到另一个页面,同时需要传递一个参数。
- activity开启一个启动模式为SingleTask的activity,intent传递数据为空的解决方法
- Objective-C中一个方法如何传递多个参数的理解
- 【1】Android源码阅读:一个Activity是如何启动的?
- 如何正确给CreateThread传递参数