Android:通过startActivityForResult方法来得到Activity的回传值
在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B activity上得到一些返回值,这个时候我们就不能使用startActivity方法了,而是使用 startActivityForResult方法来完成我们的操作。
例如,我们希望完成下面一个功能,在MainActivity上,写上一个算术表达式,然后跳转到到第二个SecondActivity上,在这个Activity上将第一个Activity的表达式显示出来,然后我们可以输入我们的算术表达式结果,然后点击按钮,将这个结果值又返回给我们的MainActivity
- public class MyList extends Activity {
- private EditText editView;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- editView = (EditText) findViewById(R.id.et);
- Button bt = (Button) findViewById(R.id.bt);
- bt.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(MyList.this, TestWidget.class);
- Bundle bundle = new Bundle();
- bundle.putString("text", editView.getText().toString());
- intent.putExtras(bundle);
- startActivityForResult(intent, 0);
- // finish(); //这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
- }
- });
- }
- /**
- * 取到回传的值
- */
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch (resultCode) { // resultCode为回传的标记,我在B中回传的是RESULT_OK
- case RESULT_OK:
- Bundle b = data.getExtras(); // data为B中回传的Intent
- editView.setText(b.getString("text"));// 回传的值
- break;
- default:
- break;
- }
- }
- }
public class TestWidget extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_items);
Bundle bundle = getIntent().getExtras();
final EditText editView = (EditText) findViewById(R.id.et1);
editView.setText(bundle.getString("text"));
Button bt = (Button) findViewById(R.id.bt1);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(TestWidget.this, MyList.class);
Bundle bundle = new Bundle();
bundle.putString("text", editView.getText().toString());
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
finish(); // 这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
}
});
}
}
Android:通过startActivityForResult方法来得到Activity的回传值的更多相关文章
- 在多个Activity中回传值(startActivityForResult())
业务逻辑: MainActivity打开A,A打开B,B把值传回MainActivity.适用在多个Activity中回传值. 实例:微信中选择国家-->省份-->城市的实现 实现方式分析 ...
- Android 组件系列-----Activity的传值和回传值
在这篇随笔里将讲解Activity的传值和回传值. 一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity, ...
- 从零开始学android开发-详细谈谈intent的startActivityForResult()方法
1.两种实现activity跳转的方法 实现activity的跳转主要有两种方法,startActivity()和startActivityForResult();例如activity A跳转到act ...
- android fragment 的用法以及与activity的交互和保存数据的方法,包括屏幕切换(转载)!
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 1.管理Fragment回退栈 类似与Android系统为Acti ...
- android开发源代码分析--多个activity调用多个jni库的方法
android开发源代码分析--多个activity调用多个jni库的方法 有时候,我们在开发android项目时会遇到须要调用多个native c/jni库文件,下面是本人以前实现过的方法,假设有知 ...
- android 关闭多个或指定activity
打开了.activityA,B,C,D,...然后到E一起关闭前面所有activity(转自:http://blog.csdn.net/lengguoxing/article/details/4214 ...
- Android四大组件之Activity详解——传值和获取结果
废话不多说,先来看效果图 项目源码: http://download.csdn.net/detail/ginodung/8331535 程序说明: 在MainActivity中输入用户名和密码,然后提 ...
- Android之startActivityForResult的使用
在Android中startActivityForResult主要作用就是: A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A ...
- Android Small插件化框架解读——Activity注册和生命周期
通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...
随机推荐
- Java连接mysql数据库并进行内容查询
最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Conn ...
- ASP.NET 批量更新
ASP.NET三种常用批量操作: 一.SqlBulkCopy copy = new SqlBulkCopy("");(优先考虑 性能最优) SqlBulkCopy可以将一个Data ...
- 【Shell脚本学习16】Shell if else语句
if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句: if ... else ... fi 语句: if ... ...
- jQuery选择器之基本选择器Demo
测试代码: 01-基本选择器.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- hdu-5683 zxa and xor (位运算)
题目链接: zxa and xor Time Limit: 16000/8000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- 转: adroid音视延迟 10ms的原因与解答
https://github.com/hehonghui/android-tech-frontier/blob/master/issue-9/Android%2010ms%E9%97%AE%E9%A2 ...
- List<T>.Sort() 排序的用法
List<T> 可以通过 .Sort()进行排序,但是当 T 对象为自定义类型时(比如自定义模型),就需要 IComparable接口重写其中的方法来实现,实现代码如下: class Pr ...
- poj1330
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24762 Accept ...
- 说说C#和.NET的关系
.NET和C#的关系:C#语言可以通过.NET平台编写.部署.运行.NET应用程序..NET可以支持包括C#在内的多种语言编写的应用程序..NET平台主要包括FCL(框架类库)它是微软事先定义好的类的 ...
- 页面table的每行都有一个<input type='button' />,如何实现点击按钮在按钮下方弹出一个div,点击空白消失
\ <input id="test" type="button" />/*按钮*/ <div id="tanchu"> ...