安卓startActivityForResult用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓startActivityForResult用法相关的知识,希望对你有一定的参考价值。

startActivityForResult的作用就是它可以回传数据,假如我们有两个页面A和B,点击A页面的一个按钮,进入下一个页面B,进入页面B后,进行设置操作,并在finish()或者back后,将B中设置的值回传给A页面,A页面来显示所得到的值。有点像回调方法,在第二个页面finish()后会回调第一个页面onActivityResult()方法。代码如下:

在A页面 点击一个按钮进入B

A页面代码:

Intent intent = new Intent();
intent.setClass(A.this, B.class);
startActivityForResult(intent, 3);

B页面代码:

Intent data = new Intent();
data.putExtra("hospital", HosName);
data.putExtra("hos_id", HosId);
setResult(3, data);
finish();

A页面代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (3 == requestCode) {
hosName = data.getExtras().getString("hospital");
hosId = data.getExtras().getString("hos_id");
if (!hosName.equals("")) {
select_area.setText(hosName);
select_area.setTextColor(getResources().getColor(R.color.black));
} else {
select_area.setText("请选择转诊医院");
select_area.setTextColor(getResources().getColor(R.color.hintgray));
}
}
}

 


























以上是关于安卓startActivityForResult用法的主要内容,如果未能解决你的问题,请参考以下文章

startActivityForResult() 不调用 onActivityResult(int requestCode, int resultCode, Intent data)?

使用 startActivityForResult 方法启动时,singleTask 应用程序不会重用最近应用程序中已经存在的任务

安卓复习8

安卓复习8

安卓复习8

告别onActivityResult ,用代理实现Rx方式获取startActivityForResult结果