启动一个新的activity并携带数据,返回数据给上一个activity

一、在启动一个新的activity的时候可以通过Intent携带数据,通过Intent.putExtra()方法通过键值对的形势装入数据。在新启动的activity中通过               getIntent()方法获取启动activity的Intent,并通过getxxxxExtra()获取传递的数据。

二、如果希望被启动的新activity返回数据,则需要使用startActivityForResult()启动新的activity,方法携带两个参数,第二个为请求码,用于返回时判断是由哪个activity返回的,另一个是Intent.需要重写onActivityResult(int requestCode,int resultCode,Intent data)方法获取返回的数据。在新的activity中通过setResult()方法设置要回传的数据,该方法接收2个参数,第一个为返回码,只能是RESULT_OK和RESULT_CANCELED这两个值,第二个参数是一个携带数据的Intent,

  调用finish()方法可结束当前activity。

  示例代码如下:

  

public class MainActivity extends Activity {    Button btn1;    TextView text1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        text1 = (TextView) findViewById(R.id.text1);        btn1 = (Button) findViewById(R.id.button1);        btn1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String str1 = new String("我爱麦麦妈妈");                Intent intent =new  Intent(MainActivity.this,SecondActivity.class);                intent.putExtra("dataSend",str1);                startActivityForResult(intent,1);               // startActivity(intent);            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        if(requestCode == 1){            text1.setText(data.getStringExtra("backString"));        }    }}
public class SecondActivity extends Activity {    TextView text2;    Button btn2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.second_activity);        Intent intent1 = getIntent();        String getString = intent1.getStringExtra("dataSend");        text2 = (TextView) findViewById(R.id.text2);        text2.setText(getString);        btn2 = (Button) findViewById(R.id.button2);        btn2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intentTemp = new Intent();                intentTemp.putExtra("backString","北极熊爱企鹅");                setResult(1,intentTemp);                finish();            }        });    }}
时间: 2024-10-05 09:16:32

启动一个新的activity并携带数据,返回数据给上一个activity的相关文章

android webview点击返回键回到上一个html

android webview点击返回键返回上一个html 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { 4 mWebView.goBack();// 返回前一个页面 5 return true; 6 } 7 return super.onKeyDown(keyCod

arttemplate模板引擎有假数据返回数据多层内嵌的渲染方法

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-sca

防止查询数据返回数据行为零引起的逻辑判断重复或抛出异常

以下代码以操作ORACLE数据库为例 1.返回DataSet数据,若查询返回行数为零,返回null 1 /// <summary> 2 /// 执行查询语句,返回DataSet 3 /// </summary> 4 /// <param name="SQLString">查询语句</param> 5 /// <returns>DataSet</returns> 6 public static DataSet Que

PHP上传数据返回数据 unity 测试成功

1.PHP代码不能使用$_GET,要使用$_POST才可以 2.浏览器测试成功!PHP代码,要使用$_GET,不能使用$_POST 3. 4. 5. 6. 7. 8. 9.

MySql 插入数据返回数据的Id值

insert into addeditemgroup(addeditemgroupname) value('11') ; select @@IDENTITY  as id; 返回最新的Id:

返回数据给上一个活动

我们都知道,android开发中一个活动跳转时是可以带数据传递给下一个活动的,那么能不能够返回数据给上一个活动呢?答案是肯定的.不过不同的是,返回上一个活动只需要按一下Back键就可以了,并没有一个用于启动活动Intent来传递数据.通过查阅文档你会发现,Activity中还有一个startActivityForResult()方法也是用于启动活动的,但这个方法期望在活动销毁的时候能返回一个结果给上一个活动.毫无疑问,这就是我们所需要的. startActivityForResult()方法接收

实验六———分析Linux内核创建一个新进程的过程

分析Linux内核创建一个新进程的过程 攥写人:李鹏举  学号:20132201 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ) 本周要求: 阅读理解task_struct数据结构http://codelab.shiyanlou.com/xref/linux-3.18.6/include/linux/sched.h#1235: 分析fork函数对应的内核处理过

《Linux内核分析》 第六节 分析Linux内核创建一个新进程的过程

范闻泽 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验过程 1.删除原来的menu,并clone新的menu,用test_fork.c覆盖test.c 2. make rootfs之后新的内核启动,测试fork功能 3.使用-s -S冷冻内核,准备调试 4.设置断点 5.根据断点,进行跟踪,得到结果 1.以下是执行指令 cd LinuxKernel rm menu -r

Android基础之——startActivityForResult启动界面并返回数据,上传头像

在android应用的开发过程中,经常会出现启动一个界面后填写部分内容后带着数据返回启动前的界面,最典型的应用就是登录过程.在很多应用程序的模块中,都有"我的"这个模块,在未登录状态下点击其中的某一项,就会弹出登录界面,登录完成后回到我的界面,会显示一些登录后的数据,这个功能的实现就要用到startActivityForResult. 下面通过一个小demo来说明一下startActivityForResult的使用,以及在实际开发中的一些应用. demo的效果图如下: 主界面布局:

iOS8新建一个新的空白工程

iOS8新建一个新的空白工程--妖妖 1.新建一个工程,然后新建一个single view application 2.在工程的资源目录中找到Supporting Files->Info.plist 文件,删除里面的Launch screen interface file base name 和 Main storyboard file base name 3.删除 Main.storyboard 和  LaunchScreen.xib 4.修改AppDelegate.m - (BOOL)app