Andorid学习笔记(ADT)-startActivity和startActivityForResult的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Andorid学习笔记(ADT)-startActivity和startActivityForResult的用法相关的知识,希望对你有一定的参考价值。
startActivity的用法
-
startActivity同时用在Button按钮的onClickListener中
-
在第一个activity(A)文件中:
//写在onClickListener方法中 public void onClick(View v){ Intent intent = new Intent(); //使用Intent类的构造方法创建一个intent对象 intent.setClass(A.this,B.class);//设置intent的意图,表示从A跳转到B startActivity(intent);//执行intent的意图,程序执行,从A跳转到B }
-
在第二个activity(B)文件中:
//A文件中的 startActivity(intent); 将自动运行到B文件中的onCreate方法中 protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.B对应的layout文件);//使用R文件中的layout的id属性来启动相应的界面,至此使用startActivity完成activity的跳转完成 }
startActivityForResult的用法
-
相较于startActivity,startActivityForResult可以第二个Layout中的数据传输到第一个Layout中,并且将第二个Layout或者说activity关闭
写入A文件中的有:
startActivityForResult(Intent intent,requestCode)
- intent 与 startActivity 中的intent的用途完全一样 requesetCode 作为一个参数(在onActivityResult中做匹配,值>=0即可)
onActivityResult(int requestCode, int resultCode, Intent data)
- requestCode 指的是在B文件中setResult中的 resultCode 参数,一般设置为RESULT_OK
- resultCode 指的是在A文件中的startActivityForResult方法中设置的requestCode
- Intent data 表示在B文件中设置的数据传输,具体见Intent数据传输
写入B文件中的有:
setResult(RESULT_OK,intent);
finish();
- 将intent中的数据传输到A文件中,一般使用bundle进行批量传参,详细传参方法见Intent数据传输
- 一定要加上finish();否则无法完成数据的传输
以上是关于Andorid学习笔记(ADT)-startActivity和startActivityForResult的用法的主要内容,如果未能解决你的问题,请参考以下文章
Andorid学习笔记-eclipse-bundle包SDK目录结构