作用:当aAty跳转之bAty时,需要bAty回传数据,使用startActivityForResult。

相关的函数:

aAty:--跳转至bAty(intent可以传递数据)

void android.app.Activity.startActivityForResult(Intent intent, int requestCode)

bAty:

void android.app.Activity.setResult(int resultCode, Intent data)

aAty:

void android.app.Activity.startActivityForResult(Intent intent, int requestCode)

代码:

aAty:

public class MainActivity extends Activity implements OnClickListener {
private Button bt_jumpAnotherAty; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_jumpAnotherAty = (Button) findViewById(R.id.bt_jumpAnotherAty);
bt_jumpAnotherAty.setOnClickListener(this);
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {
case RESULT_OK:
String result = data.getStringExtra("result");
Log.d("h_bl", result);
break; default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_jumpAnotherAty:
Intent intent = new Intent(MainActivity.this, AnotherActivity.class);
startActivityForResult(intent, 0);
break; default:
break;
}
} }

bAty:

public class AnotherActivity extends Activity implements OnClickListener {
private Button bt_setResult; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another);
bt_setResult = (Button) findViewById(R.id.bt_setResult);
bt_setResult.setOnClickListener(this);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_setResult:
// 数据是使用Intent返回
Intent intent = new Intent();
// 把返回数据存入Intent
intent.putExtra("result", "My name is h_bolin");
// 设置返回数据
AnotherActivity.this.setResult(RESULT_OK, intent);
// 结束该Aty,这点很重要。
AnotherActivity.this.finish();
break; default:
break;
}
} }

详解:bAty被销毁时 -- finish(),会返回数据。

PS.

1.一般不会在bAty的onCreate()方法写setResult()方法,需要在调用的时候,才会调用。

2.按Back键,Android会自动调用Aty的finish()方法。

3.可以重写onBackPressed()方法,对Back键的事件处理。

String result = data.getStringExtra("reslt");

4.取值时,要name要写对,不然会报以下错误:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { (has extras) }} to activity {com.example.startactivityforresultdemo/com.example.startactivityforresultdemo.MainActivity}: java.lang.NullPointerException: println needs a message

startActivityForResult() 中requestCode 和 resultCode 的作用:

使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,我们需要为startActivityForResult()方法传入一个请求码(第二个参数)。请求码的值是根据业务需要由自已设定,用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。

详见:

http://blog.csdn.net/donglynn/article/details/22693835

Android之startActivityForResult的更多相关文章

  1. Android之startActivityForResult的使用

    在Android中startActivityForResult主要作用就是: A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A ...

  2. Android的startActivityForResult()与onActivityResult()与setResult()参数分析,activity带参数的返回

    一.使用场景 在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的数据交给主Ac ...

  3. Android使用 startActivityForResult 、 onActivityResult 时的注意事项

    今天使用 startActivityForResult 时遇到两个问题,应该是常见问题了吧,浪费了些时间才搞定,做个记录. 1. onActivityResult 的触发顺序问题 这个问题很郁闷,我一 ...

  4. Android的startActivityForResult不起作用

    之前startActivityForResult一直用的好好的,今天发现怎么也不起作用.检查后发现有两点影响了. 1.android:launchMode="singleTask" ...

  5. 【转】android的startActivityForResult学习心得

    http://blog.csdn.net/yanzi1225627/article/details/7800529 从昨晚到现在终于调试通了一个startActivityForResult的例子,网上 ...

  6. Android Fragment StartActivityForresult调用实例

    fragment里面的onActivityResult 怎样才能被调用,很简单,就一句话, startActivityForResult(intent, getActivity().RESULT_FI ...

  7. 简化Android的startActivityForResult调用

    一个是解决在onActivityResult 中判断requestCode的问题,第二个是让调用代码的地方就知道我是如何处理对方activity 的返回的. 首先我们有一个ResultActivity ...

  8. android 加载自定义图片并在图片上绘图

    来源:毕设 关键词:Bitmap Canvas //毕设中需要自定义室内地图,并且在地图上绘制轨迹 //此处是一个测试Demo,实现图片的加载和记录手指在屏幕上的运动轨迹 图片的载入 使用系统提供的内 ...

  9. 打开Android系统安装APK的页面

    //使用隐式意图开启安装APK的Activity Intent intent = new Intent("android.intent.action.VIEW"); intent. ...

随机推荐

  1. 转:增强学习(二)----- 马尔可夫决策过程MDP

    1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...

  2. jsp中路径的问题。。。

    刚刚学jsp的时候都是从看别人的代码,模仿着做,但是这样也有看不懂的地方,这个相对路径和绝对路径就让我纠结了好久..所以我自己弄了一个demo实验了一下,试验出结果了,但是不明白原理,纠结了一天,终于 ...

  3. UITableView学习之辨析两个方法:⓵dequeueReusableCellWithIdentifier与⓶dequeueReusableCellWithIdentifier:forIndexPath:

    使用storyboard显示UITableView时,如果不修改系统默认生成的tableView:cellForRowAtIndexPath:方法中的代码,必须为UITableViewCell注册(填 ...

  4. 【洛谷 SP2878】Knights of the Round Table(双联通分量)

    先放这吧,没时间写,明天再补 "明天到了" 题目链接 题意:求不在任何奇环内的点的数量. Tarjan求点双联通分量,然后再染色判断是不是二分图就好了. 只是不懂为什么Tarjan ...

  5. bzoj 1022 SJ定理

    与传统的SG游戏不同的是,完成最后一个状态的人是输的,我们把这一类问题称作Anti-SG,这类问题的解决我们需要引入一个定理—SJ定理: 对于任意一个Anti-SG游戏,如果我们规定当局面中所有的单一 ...

  6. jquery发送json请求,给springmvc接收

    js var obj = { 'name':name, 'desc':desc, 'scheduleStartTime':scheduleStartTime, 'scheduleEndTime':sc ...

  7. 解决Eclipse明明有错误,却不能显示错误红叉的方法,eclipse不能显示错误

    出现这情况的原因是因为java文件的错误太多,eclipse停止编译.解决方法如下 1.勾选自动编译功能 2.clean工程 3.取消“abort build when build path erro ...

  8. 在Js或者cess后加版本号 防止浏览器缓存

    在Js或者cess后加版本号 防止浏览器缓存 客户端浏览器会缓存css或js文件,从而减少加载次数,减少流量,提高网页的访问速度.为了使得每次修改js或者css能生效,可以通过改变版本号来使得客户端浏 ...

  9. 微信小程序保存图片的方法

    1.xhtml代码 长按保存: <view class="img" catchlongpress='baocun'></view> 2.Js代码 baocu ...

  10. hdu5079

    这道题的难点在于思考dp表示什么 首先可以令ans[len]表示白色子矩阵边长最大值大于等于len的方案数则ans[len]-ans[len+1]就是beautifulness为len的方案数 白色子 ...