【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当中 思 ...
随机推荐
- u盘的超级用法
转自360 U盘是大家最常用的移动存储设备,不过它的即插即用特性在给我们带来方便同时,也带来了极大的安全隐患.一款没有加密功能的U盘,在借给他人使用或不慎丢失时,其中所保存的资料将很容 ...
- 7-2 DBA顾问第一次上次操作考试
SQLPLUS执行: 1--@?/rdbms/admin/awrrpt 生产snapshot, 一个时间点, 再执行下一个时间点. 2-- 附件作业第一次执行步骤: 1) SQLP ...
- bzoj2653:middle
思路:首先容易想到二分答案,但如何去check呢,对于一段区间[l,r],把所有小于答案的都赋值为-1,大于等于它的都赋值为1,然后求左端点在[a,b],右端点在[c,d]的最大子串和即可(也就是区间 ...
- Sqlserver知识点1
1.字符串 字符数据类型是SQL Server 中最常用的数据类型之一,它可以用来存储各种字母.数字符号和特殊符号.在使用字符数据类型时,需要在其前后加上英文单引号或者双引号. (1)char ...
- Activity与WindowManagerService服务的连接过程分析
Activity组件与WindowManagerService服务之间的连接模型如下图所示: 1. Activity组件 -> WindowManagerService的连接 Activity会 ...
- Day9 网络编程
OSI(Open System Interconnect),即开放式系统互联. ISO(International Standards Organization)国际标准化组织 OSI七层模型: TC ...
- jsp查询页面和结果页面在同一页面显示和交互
用frameset实现查询页面和结果页面在同一页面 用target实现交互显示在同一页面上 请参照以下方法解决: main.jsp: <html> <head> <met ...
- SortedList的用法
1.SortedList定义 System.Collections.SortedList类表示键/值对的集合,这些键值对按键排序并可按照键和索引访问.SortedList 在内部维护两个数组以存储列表 ...
- 2016030207 - sql50题练习(脚本)
我的mysql版本是5.下面是要进行sql练习题使用的脚本.脚本是我整理出来的,在我本地直接复制执行就可以使用! 参考网址是:http://blog.csdn.net/zhangyulin54321/ ...
- 动画讲解 Eclipse 常用快捷键
Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会. ...