Android基础之startActivityForResult()的用法详解

#技术教程 发布时间: 2026-01-18

前言

安卓开发中一个很基础的操作就是打开一个 Activity ,另一个很必要的操作就是,打开一个 Activity ,在打开的 Activity 中操作之后并获得返回结果。

两个 Activity

为了演示这个操作,我们需要两个 Activity : MainActivity 和 OtherActivity ,在 MainActivity 中通过 Intent 启动 OtherActivity ,并获得 OtherActivity 结束后返回的结果,例子仅作演示,为了方便,我直接在 Java 文件中定义了控件,就不写布局文件了。

MainActivity.java

package net.conw.intenttest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class MainActivity extends Activity implements View.OnClickListener {

 private EditText editText;
 private Button button;
 public static int REQUEST_CODE = 1;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  LinearLayout layout = new LinearLayout(this);
  editText = new EditText(this);
  button = new Button(this);
  button.setText("Main");
  button.setOnClickListener(this);

  layout.addView(editText);
  layout.addView(button);
  setContentView(layout);
 }

 @Override
 public void onClick(View v) {
  Intent intent = new Intent(this, OtherActivity.class);
  intent.putExtra("text", editText.getText().toString());
  startActivityForResult(intent, REQUEST_CODE);
 }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode == REQUEST_CODE && resultCode == OtherActivity.RESULT_CODE) {
   editText.setText(data.getStringExtra("text"));
  }
 }
}

OtherActivity.java

package net.conw.intenttest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class OtherActivity extends Activity implements View.OnClickListener {

 private EditText editText;
 private Button button;
 public static int RESULT_CODE = 1;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  LinearLayout layout = new LinearLayout(this);
  editText = new EditText(this);
  button = new Button(this);
  button.setText("Other");
  button.setOnClickListener(this);

  layout.addView(editText);
  layout.addView(button);
  setContentView(layout);

  editText.setText(getIntent().getStringExtra("text"));
 }

 @Override
 public void onClick(View v) {
  Intent intent = new Intent();
  intent.putExtra("text", editText.getText().toString());
  setResult(RESULT_CODE, intent);
  finish();
 }
}

整个代码的执行逻辑如下:

1、两个 Activity 的代码就是这样的, 当 MainActivity 中的 Button 被触发 onClick() 事件后,把 MainActivity 中的 EditText 的内容发给了 OtherActivity 。

2、OtherActivity 打开并初始化好控件后,把 EditText 的内容设置为 MainActivity 发过来的内容。

3、当 OtherActivity 中的 Button 被触发 onClick() 事件后,把 OtherActivity 中的 EditText 的内容返回给 MainActivity。

4、当返回到 MainActivity 时,会执行 ononActivityResult() 方法的内容,判断如果 RequestCode 和 ResultCode 无误后,把 MainActivity 中的 EditText 的内容改为 OtherActivity 返回的结果。(这里判断了 RequestCode 和 ResultCode ,所以 OtherActivity 通过 Back 键返回时, MainActivity 的内容不会改变)

所以结果就是,通过这样的方式打开这两个Activity,他们中的 EditText 的内容是同步的,一个 Activity 改变了,到另一个 Activity 中也会跟着改变。

总结

好了,以上就是关于Android中startActivityForResult() 的全部内容了,希望本文的内容对各位Android开发者们能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。




上一篇 : 问界单日大定订单逾 1100 台,大规模交付阶段的正式开启

下一篇 : CentOS 7如何快速开放端口

推荐阅读

电话:400 76543 55
邮箱:915688610@qq.com
品牌营销
客服微信
搜索营销
公众号
©  丽景创新 版权所有 赣ICP备2024032158号 
宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 宜昌市隼壹珍商贸有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 内江振祥营销策划有限公司 恩施州毯滚百货有限公司 恩施州毯滚百货有限公司 襄阳市蜂欢商贸有限公司 襄阳市蜂欢商贸有限公司 恩施州换冯百货有限公司 恩施州换冯百货有限公司 恩施州健提百货有限公司 恩施州健提百货有限公司 西安益零商贸有限公司 西安益零商贸有限公司 南奥教育 南奥教育 南奥教育 南奥教育 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南奥教育网 南奥教育网 南奥教育网 南奥教育网 南奥学习网 南奥学习网 南奥学习网 南奥学习网 南奥教育 南奥教育 南奥留学记 南奥留学记 南奥教育 南奥教育 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌市南奥教育咨询有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 南昌壹佳企网络通信有限公司 广照天下广告 广照天下广告 广照天下广告策划 广照天下广告策划 广照天下 广照天下 广照天下 广照天下 广照天下 广照天下 广照天下广告策划 广照天下广告策划 广照天下广告策划 广照天下广告策划 南昌市广照天下广告策划有限公司 南昌市广照天下广告策划有限公司 南昌市广照天下广告策划有限公司 南昌市广照天下广告策划有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 宿州市腾雀网络科技有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司 九江市云仁商务咨询有限公司
品牌营销
专业SEO优化
添加左侧专家微信
获取产品详细报价方案