Intent:意图,主要实现Activity之间的来回切换和数据传递。
1) 简单切换示意代码如下:
//新建一个意图
Intent intent = new Intent();
//装载跳转从IntentTest跳转到MainActivity类
intent.setClass(IntentTest.this, MainActivity.class);
//开启新Activity
IntentTest.this.startActivity(intent);
2) Activity之间传递数据
A. 采用普通方式存放数据
第一步,构建要传递的数据。
//新建一个意图
Intent intent = new Intent();
//存放传递的数据
intent.putExtra("test", "我是要传递的数据");
//装载跳转从IntentTest跳转到MainActivity类
intent.setClass(IntentTest.this, MainActivity.class);
//开启新Activity
IntentTest.this.startActivity(intent);
第二步,获取传递的数据。
在跳转的目的地建立一个Intent,接收数据。
//新建一个接收意图
IntentreceiveIntent = getIntent();
//接收传过来的数据
String receiveData = receiveIntent.getStringExtra("test");
B. 采用Bundle封装数据的方式
第一步,构建要传递的数据。
//新建一个意图
Intent intent = new Intent();
//构建一个Bundle
Bundle bundle = new Bundle();
//存放传递的数据
bundle.putString("test", "我是用Bundle方式传递的数据");
//把Bundle装载进Intent
intent.putExtras(bundle);
//装载跳转从IntentTest跳转到MainActivity类
intent.setClass(IntentTest.this, MainActivity.class);
//开启新Activity
IntentTest.this.startActivity(intent);
第二步,获取传递的数据。
在跳转的目的地建立一个Bundle,接收数据。
//新建一个接收Bundle
BundlereceiveBundle = getIntent().getExtras();
//接收传过来的数据
String receiveData = receiveBundle.getString ("test");
C. 回传数据的处理
场景:Activity A 跳转至Activity B,然后B 回传数据给A,如何操作。
建议采用重写onActivityResult()的方式,来操作数据的传递。
注意几个要点:
第一,A跳转至B时,采用startActivityForResult(Intent对象,大于等于0的整数值);
第二,A中重写onActivityResult(intrequestCode, int resultCode, Intent data)方法,用data来接收数据;
第三,B采用setResult方法而不是startActivity()方法跳转。同时,B最后必须finish()。
以上是自己总结和摘抄自网络,请大家帮忙补充完善,谢谢!