启动Activity的两种方式startActivity和startActivityForResult(一)
2016-03-03 13:25
429 查看
启动Activity有两种方式:
1,startActivity(Intent intent);启动其他Activity
2,startActivityForResult(Intent intent,int requestCode):以指定指定的请求码(requestCode)启动Activity,并且程序将会等到新启动Activity的结果(通过重写onActivityResult()方法来获取)
启动Activity是可指定一个requestCode参数,该参数代表了启动Activity的请求码。这个请求码的值由开发者自己设置,其实就是一个int整数值,只是用于表示请求来源
关闭Activity的两种方法:
1,finish():结束当前Activity;
2,finishActivity(intrequestCode):结束以startActivityForResult(Intent intent,int requestCode)方法启动的Activity。
startActivity和startActivityForResult的区别:
startActivity在启动其他Activity之后是不会被回调回来的,相当于启动者和被启动者在启动完毕之后是没有关系的
startActivityForResult在启动了其他Activity之后是由回调的,也就是说启动者与被启动者在启动完毕之后依然是有关系的
第一种方式比较直接,通过A的界面组件(比如按钮)可以启动第二个ActivityB,但是A和B之间不会传递数据,也就是无法进行通信
其基本代码模板是:
StartActivity.java
1,startActivity(Intent intent);启动其他Activity
2,startActivityForResult(Intent intent,int requestCode):以指定指定的请求码(requestCode)启动Activity,并且程序将会等到新启动Activity的结果(通过重写onActivityResult()方法来获取)
启动Activity是可指定一个requestCode参数,该参数代表了启动Activity的请求码。这个请求码的值由开发者自己设置,其实就是一个int整数值,只是用于表示请求来源
关闭Activity的两种方法:
1,finish():结束当前Activity;
2,finishActivity(intrequestCode):结束以startActivityForResult(Intent intent,int requestCode)方法启动的Activity。
startActivity和startActivityForResult的区别:
startActivity在启动其他Activity之后是不会被回调回来的,相当于启动者和被启动者在启动完毕之后是没有关系的
startActivityForResult在启动了其他Activity之后是由回调的,也就是说启动者与被启动者在启动完毕之后依然是有关系的
第一种方式比较直接,通过A的界面组件(比如按钮)可以启动第二个ActivityB,但是A和B之间不会传递数据,也就是无法进行通信
其基本代码模板是:
// 创建需要启动的Activity对应的Intent Intent intent = new Intent(StartActivity.this,SecondActivity.class); // 启动intent对应的Activity startActivity(intent);例,第一个Activity很简单,值由一个按钮,该按钮进入第二个Activity,第二个Activity只有两个按钮,一个按钮简单的返回第一个Activity,但是不会结束自己,第二个按钮结束自己并返回上一个Activity
StartActivity.java
public class StartActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获取应用程序中的bn按钮 Button bn = (Button) findViewById(R.id.bn); // 为bn按钮绑定事件监听器 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { // 创建需要启动的Activity对应的Intent Intent intent = new Intent(StartActivity.this, SecondActivity.class); // 启动intent对应的Activity startActivity(intent); } }); } }SecondActivity.java
public class SecondActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); // 获取应用程序中的previous按钮 Button previous = (Button) findViewById(R.id.previous); // 获取应用程序中的close按钮 Button close = (Button) findViewById(R.id.close); // 为previous按钮绑定事件监听器 previous.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { // 获取启动当前Activity的上一个Intent Intent intent = new Intent(SecondActivity.this, StartActivity.class); // 启动intent对应的Activity startActivity(intent); } }); // 为close按钮绑定事件监听器 close.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { // 获取启动当前Activity的上一个Intent Intent intent = new Intent(SecondActivity.this, StartActivity.class); // 启动intent对应的Activity startActivity(intent); // 结束当前Activity finish(); } }); } }
相关文章推荐
- CSS书写应该注意的情况
- Linux之防火墙------查看操作
- zabbix server is not running: the information displayed may not be current
- ListView 中Item TextView 跑马灯遇到的问题
- android消息机制之二--Handler
- Android showDialog时报错requestFeature() must be called before adding content
- iOS基础--UIView的常见属性
- jquery easyui 怎么动态控制toolbar的显示
- Oracle CDC (Change Data Capture)更新数据捕获——概述
- android:省市县三级联动(基于json和spring)
- Mybatis分库分表扩展插件
- 针对B/S、C/S架构的180个简单测试案例
- 有关HealthKit的那些事
- jQuery中的promise的应用
- python中的三引号
- 关于 iReport 的几个问题
- windows下配置solr4.6.0服务器
- SpringMvc学习心得(一)浅谈spring
- synchronized的用法与注意事项
- 常用Git 命令清单