如果ActivityA需要打开一个新的ActivutiyB 单方面的传递数据,可以开启一个新的意图 new Intent(); 用putExtra();等方法把要传递的数据封装起来, 利用startActivaty();方法 去开启一个B, 在B中通过getIntent();方法 来获取一个Intent 对象
然后通过getXxxx()方法 根据Key 把你传递的数据获取出来
ActvityA 中的代码 :
Intent intent = new Intent(this, Activity01.class);
intent.putExtra("SS",num);
startActivity(intent);
ActivityB中的代码:
Intent intent = getIntent(); //getIntet();
String num = intent.getStringExtra("SS");
如果需要在ActivityB结束的时候带返回值传递到ActivityA 那么就需要在A中调用 startActivityForResult();方法了
这个方法中有两个参数requestCode 代表请求码 是每个请求页面的标识 另一个是Intent
第二步 在ActivityA 中重写onActivityResult方法 用于接收 B中返回的数据 这个方法是回调方法 自动调用
第三步 在ActivityB中 调用setResult方法 将所要传递的数据返回
ActvityA 中的代码 :
int requestCode = 1;
Intent intent2 = new Intent(this,Activity01.class);
intent2.putExtra("SS", num);
startActivityForResult(intent2, requestCode);
重写onActivityResult:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1&&resultCode == 2) {
//Intent intent = getIntent(); // data 本身就是一个 Inten 所以不需要再new了 直接调用里面的方法就行了
String s = data.getStringExtra("AA");
}
}
ActicityB中代码:
int resultCode = 2;
String num1 = ed1.getText().toString();
Intent data = new Intent(); //同调用者一样 需要一个意图 把数据封装起来
data.putExtra("AA", num1);
setResult(resultCode, data);
finish();