前言

安卓开发中一个很基础的操作就是打开一个 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开发者们能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。
# startactivityresult
# activity
# setresult
# startactivity用法
# Android startActivityForResult的调用与封装详解
# Android startActivityForResult的基本用法详解
# Android利用startActivityForResult返回数据到前一个Activity
# Android startActivityForResult和setResult的区别
# Android startActivityForResult实例详解
# Android startActivityForResult()代替方案示例
# 好了
# 如有
# 这两个
# 给了
# 中也
# 谢谢大家
# 设置为
# 仅作
# 不写
# 结束后
# 改变了
# 很必要
# Button
# widget
# View
# os
# content
# app
相关文章:
如何在宝塔面板创建新站点?
如何选择美橙互联多站合一建站方案?
建站主机选购指南与交易推荐:核心配置解析
如何用腾讯建站主机快速创建免费网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何在自有机房高效搭建专业网站?
定制建站策划方案_专业建站与网站建设方案一站式指南
如何在景安云服务器上绑定域名并配置虚拟主机?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
如何快速辨别茅台真假?关键步骤解析
如何快速搭建高效香港服务器网站?
建站之星价格显示格式升级,你的预算足够吗?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
定制建站哪家更专业可靠?推荐榜单揭晓
如何快速打造个性化非模板自助建站?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
c# 服务器GC和工作站GC的区别和设置
大连网站设计制作招聘信息,大连投诉网站有哪些?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
建站之星×万网:智能建站系统+自助建站平台一键生成
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何制作一个表白网站视频,关于勇敢表白的小标题?
网站制作难吗安全吗,做一个网站需要多久时间?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
TestNG的testng.xml配置文件怎么写
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
北京的网站制作公司有哪些,哪个视频网站最好?
动图在线制作网站有哪些,滑动动图图集怎么做?
威客平台建站流程解析:高效搭建教程与设计优化方案
如何续费美橙建站之星域名及服务?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何在局域网内绑定自建网站域名?
建站主机选购指南:核心配置与性价比推荐解析
html制作网站的步骤有哪些,iapp如何添加网页?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
建站之星安装提示数据库无法连接如何解决?
如何在Windows 2008云服务器安全搭建网站?
如何在Windows环境下新建FTP站点并设置权限?
金*站制作公司有哪些,金华教育集团官网?
如何在宝塔面板中创建新站点?
专业公司网站制作公司,用什么语言做企业网站比较好?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
宁波免费建站如何选择可靠模板与平台?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
建站之星后台密码遗忘或太弱?如何重置与强化?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何通过VPS搭建网站快速盈利?
*请认真填写需求信息,我们会在24小时内与您取得联系。