StartActivityForResult的使用

StartActivityForResult的使用

看到这个的人相比都知道StartActivityForResult是用来干嘛的,这里就不啰嗦了直接说使用方法吧

Activity A需要启动Activity B来进行用户操作,当操作完成之后需要将Activity B的数据传回到Activity A当中,这就需要使用StartActivityForResult来启动Activity B

具体实现:

int requestCode = 0 ;
 ...
Intent intent = new Intent(...);
//intent用来传输数据,常用的类型都行,如果需要传输自定义的对象也是可行的
,只要实现 Serializable 或者 Parcelable接口即可
//也可以通过Bundle来传输数据
//Bundle bundle = new Bundle();
//bundle.putXxx(key, value);
//intent.putExtra(key_bundle,bundle);
intent.putExtra(mName, object);
...
startActivityForResult(intent, requestCode);

Activity B中的处理

...前面步骤与Activity A中的操作一样,不同的是传递使用intent时调用的是
setResult(resultCode, intent);
this.finish();

接收Activity B中数据的方法

要接收其他Activity传回的数据,需要重写OnActivityResult()方法,此方法在Activity,Fragment中皆有,如下

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == ADDPASSREQUESTCODE && resultCode == AddPassActivity.ADDPASSRESULTCODE) {
            Bundle bundle = data.getBundleExtra(AddPassActivity.RESULTBUNDLE);
            PassItem item = (PassItem) bundle.getSerializable(AddPassActivity.SERIALIZABLE_PASSITEM);
            passItems.add(item);
            mHandler.sendEmptyMessage(INITDATASUCCESS);
        }
    }

使用的时候部分内容记得不是太清晰,故做一下记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值