【Android 复习】:从Activity中返回数据
在实际的应用中,我们不仅仅要向Activity传递数据,而且要从Activity中返回数据,虽然返回数据和传递类似,也可以采用上一讲中的四种方式来传递数据,但是一般建议采用Intent对象的方式的来返回数据,使用这种方式返回数据,需要使用StartActivityForResult方法来显示Activity。
需求:如下图所示:输入 a 和 b 的值,然后点击输入计算机结果,跳转到另外Activity,输入结果,点击得出结果按钮,将得到的数值放在 第三个输入框中。使用StartActivityForResult()方式来实现。

程序Demo:
1. IntentResult.java
public class IntentResult extends Activity {
private Button button;
private EditText inputA, inputB, result;
private final static int RESQUESTCODE = 1;
private final static int RESULTCODE_TO_INTENTRESULT = 2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initComponent();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int a = Integer.parseInt(inputA.getText().toString());
int b = Integer.parseInt(inputB.getText().toString());
Intent intent = new Intent(IntentResult.this, Other.class);
intent.putExtra("a", a);
intent.putExtra("b", b);
startActivityForResult(intent, RESQUESTCODE); // 如果RESQUESTCODE
// >= 0,表示可以返回结果
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
// resultCode == RESULT_OK 表示另外一个Activity已经结束了功能
if (resultCode == RESULTCODE_TO_INTENTRESULT) {
if (requestCode == RESQUESTCODE) {
int returnResult = data.getIntExtra("result", 0);
result.setText(String.valueOf(returnResult));
}
}
}
private void initComponent() {
button = (Button) findViewById(R.id.button);
inputA = (EditText) findViewById(R.id.one);
inputB = (EditText) findViewById(R.id.two);
result = (EditText) findViewById(R.id.three);
}
}
2. Other.java
public class Other extends Activity {
private Button button;
private TextView tx;
private EditText inputResult;
private final static int RESULTCODE_TO_INTENTRESULT = 2;
/*
* public int getIntExtra (String name, int defaultValue) defaultValue
* 默认值是0,则返回键所对应的值
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
initComponent();
Intent intent = getIntent();
int a = intent.getIntExtra("a", 0);
int b = intent.getIntExtra("b", 0);
tx.setText(a + " + " + b + " = ? ");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int result = Integer.parseInt(inputResult.getText().toString());
Intent intent = new Intent();
intent.putExtra("result", result);
// 通过Intent对象返回结果,setResult方法
// 注意:在setResult(resultCode,
// data)方法中,resultCode表示从Other这个Activity跳转到IntentResult这个Activity的标记,必须是大于1的整数
// 注意的时候resultCode 必须与IntentResult中的 onActivityResult(int
// requestCode, int resultCode, Intent data)的参数resultCode要一致的。
setResult(RESULTCODE_TO_INTENTRESULT, intent);
finish();// 结束当前的Activity的声明周期
}
});
}
private void initComponent() {
button = (Button) findViewById(R.id.button);
inputResult = (EditText) findViewById(R.id.result);
tx = (TextView) findViewById(R.id.msg);
}
}
本文转自http://blog.csdn.net/ahuier/article/details/8958128
【Android 复习】:从Activity中返回数据的更多相关文章
- 从Activity中返回数据
从Activity中返回数据 一.简介 这里也就是使用intent方式返回数据. 二.具体步骤 在MainActivity通过一个button访问Activity01页面,然后将Activity01页 ...
- 【Android 复习】 : Activity之间传递数据的几种方式
在Android开发中,我们通常需要在不同的Activity之间传递数据,下面我们就来总结一下在Activity之间数据传递的几种方式. 1. 使用Intent来传递数据 Intent表示意图,很多时 ...
- Android笔记——Activity中的数据传递案例(用户注冊)
1.创建程序activity_main: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...
- 【Android初级】利用startActivityForResult返回数据到前一个Activity(附源码+解析)
在Android里面,从一个Activity跳转到另一个Activity.再返回,前一个Activity默认是能够保存数据和状态的.但这次我想通过利用startActivityForResult达到相 ...
- Android 实现在Activity中操作刷新另外一个Activity数据列表
做android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表. 想了想,找了两种方 ...
- android中返回数据给上一个活动,可以用来回显数据
(一)who简介:没错,就是startActivityForResult()方法,这个方法用来在活动被销毁的时候返回数据给上一个方法.参数说明: startActivityForResult(inte ...
- Android复习笔记--Activity
#Activity注册 Android四大组件(Activity,Service,Broadcast Receiver, Content Provider)都需要在AndroidManifest中注册 ...
- 【Android】Intent的使用-返回数据给上一个活动
第一个Activity A启动另外一个Activity B,B返回数据给A ============================================================= ...
- Android学习之Activity之间的数据传递
Activity与Activity之间很多情况下都需要进行数据的传递,下面就用几个简单的例子来看一下. (一).一个Activity启动另一个Activity并将数据传递到这个Activity当中 思 ...
随机推荐
- OC与Swift的区别一(文件结构)
1.文件后缀名 oc的文件后缀名为:头文件.h 主体文件.m swift文件后缀名为:.swift 2. 代码分隔符 oc中使用分号;作为代码分隔符 swift中无需使用代码分隔符,以行作为代码分隔 ...
- JAVA中实现百分比
import java.text.NumberFormat; public class TeachYou { public static void main(String[] args) { //这里 ...
- 【制作镜像】virsh
首先进入到图形界面 常用virsh指令: 1)virsh list 列出当前虚拟机列表,不包括未启动的 2)virsh list --all 列出所有虚拟机,包括所有已经定义的虚拟机 3)virsh ...
- 新建DragonBones动画文件
本篇文章由:http://www.sollyu.com/new-dragonbones-animation-file/ 说明 我在网上找了很久都没找到关于怎么创建一个DragonBones动画的文章, ...
- 九度OJ 1373 整数中1出现的次数(从1到n整数中1出现的次数)
题目地址:http://ac.jobdu.com/problem.php?pid=1373 题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU ...
- spark-shell 执行脚本并传入参数
使用方法: ./spark-script.sh your_file.scala first_arg second_arg third_arg 脚本: scala_file=$ arguments=$@ ...
- 如何实现.so共享库文件
.so共享库相当于window中的.DLL文件 两个进程同时调用了.so文件,进程就会加载的.so文件到各自的内存空间,而不能实现进程间通讯. .so文件编译的方法: -so文件不需要main文件,即 ...
- php checkbox复选框值的获取与checkbox默认值输出方法
php获取 checkbox复选框值的方法,checkbox在php读取值时要用数组形式哦,我们读取这些值用php post获取是以一个array形式哦. php获取 checkbox复选框值的方法 ...
- 介绍.NET Core
在connect (),我们宣布.NET 核心将能完全释放,作为开放源码软件.我也答应在.NET 核心跟更多的细节.在这篇文章,我将提供.NET 核心,我们如何去释放它,它涉及到.NET 框架,如何和 ...
- Django 数据库查询优化
Django数据层提供各种途径优化数据的访问,一个项目大量优化工作一般是放在后期来做,早期的优化是“万恶之源”,这是前人总结的经验,不无道理.如果事先理解Django的优化技巧,开发过程中稍稍留意,后 ...