INTENT类型,多个Activity交互

来源:互联网 发布:什么网络硬盘最好用 编辑:程序博客网 时间:2024/05/19 16:49

工作终于暂时告一段落,对于一个初学者来说,要不断地提升自己,不断努力!今天对自己说加油!

学习新知识,对于基础薄弱的我,从看别人的代码开始,一点点学习:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null) {
return;
}
if (100 == requestCode) {
//99-增加成功
if (99 == resultCode) {

//此处省略当99 == resultCode的处理

}

}}

完全不知道protected void onActivityResult(int requestCode, int resultCode, Intent data)是什么意思,查阅一些资料后明白:此函数是配合public void startActivityForResult (Intent intent, int requestCode)setResult(int resultCode, Intent data);一起使用的.

当我们跳转Activity时最常用的是:intent = new Intent(##Activity.this, Activity**.class);startActivity(intent);直接跳转,但是有的时候两个Activity,或者几个Activity之间需要交互,在ONEActivity操作完一系列动作后,可能需要通知TWOActivity更近一些列操作,在Activity中得到新打开Activity 关闭后返回的数据那么就需要:

ONEActivity:

 startActivityForResult (Intent intent, int requestCode)  

Intent intent = new Intent(OneActivity.this,TwoActivity.class);

//intent.putExtra("oprateType", "delete");

startActivityForResult(intent, 100);

intent :ONEActivity跳转TWOActivity的intent。

requestCode:startActivityForResult(intent, 100);

requestCode:标示符,以便通知onActivityResult根据requestCode区别操作

TWOActivity:

setResult(int resultCode, Intent intent)

//ONEActivity跳转TWOActivity后, TWOActivity会调用setResult将动作结束的结果通知ONEActivity,并跳转至ONEActivity

Intent intent = new Intent(TwoActivity.this,OneActivity.class);

intent.putExtra("result","My name is linjiqin");

setResult(199, intent);

intent :TWOActivity跳转ONEActivity的intent

resultCode:标示符,以便通知onActivityResult根据resultCode区别操作

ONEActivity:

onActivityResult(int requestCode, int resultCode, Intent data)

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null) {
return;
}

else{

String result= data.getExtras().getString("result");

}
if (100 ==
requestCode) {
//99-增加成功
if (99 ==
resultCode) {

//此处省略当99 == resultCode的处理

}

}}

requestCode:对应startActivityForResult中的requestCode

resultCode:对应setResult中的resultCode




0 0