Intent startActivityForResult传值
来源:互联网 发布:绿盾监控软件 编辑:程序博客网 时间:2024/05/24 03:03
public class MainActivity extends Activity { private final static String TAG="MainActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnOpen=(Button)this.findViewById(R.id.btnOpen); btnOpen.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { //得到新打开Activity关闭后返回的数据 //第二个参数为请求码,可以根据业务需求自己编号 startActivityForResult(new Intent(MainActivity.this, OtherActivity.class), 1); } }); } /** * 为了得到传回的数据,必须在前面的Activity中(指MainActivity类)重写onActivityResult方法 * * requestCode 请求码,即调用startActivityForResult()传递过去的值 * resultCode 结果码,结果码用于标识返回数据来自哪个新Activity */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { String result = data.getExtras().getString("result");//得到新Activity 关闭后返回的数据 Log.i(TAG, result); }}
当新Activity关闭后,新Activity返回的数据通过Intent进行传递,android平台会调用前面Activity 的onActivityResult()方法,把存放了返回数据的Intent作为第三个输入参数传入,在onActivityResult()方法中使用第三个输入参数可以取出新Activity返回的数据。
二、使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新Activity关闭前需要向前面的Activity返回数据需要使用系统提供的setResult(int resultCode, Intent data)方法实现:
package com.ljq.activitys;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;public class OtherActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.other); Button btnClose=(Button)findViewById(R.id.btnClose); btnClose.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { //数据是使用Intent返回 Intent intent = new Intent(); //把返回数据存入Intent intent.putExtra("result", "My name is linjiqin"); //设置返回数据 OtherActivity.this.setResult(RESULT_OK, intent); //关闭Activity OtherActivity.this.finish(); } }); }}
setResult()方法的第一个参数值可以根据业务需要自己定义,上面代码中使用到的RESULT_OK是系统Activity类定义的一个常量,值为-1,代码片断如下:
public class android.app.Activity extends ......{
public static final int RESULT_CANCELED = 0;
public static final int RESULT_OK = -1;
public static final int RESULT_FIRST_USER = 1;
}
阅读全文
0 0
- Intent和startActivityForResult传值
- Intent startActivityForResult传值
- Intent-startActivityForResult
- Android开发中Intent和startActivityForResult传值
- startActivityForResult(intent, requestCode)用法
- 【intent】startActivityForResult()的用法
- Intent中startActivityForResult用法
- startActivityForResult、onActivityResult 、Intent
- 不要使用 startActivityForResult(intent,RESULT_OK)
- Android开发中intent-startActivityForResult
- android startActivityForResult(Intent intent, int requestCode)用法
- Android startActivityForResult(intent, requestCode)的用法。
- Android startActivityForResult(intent, requestCode)的用法。
- 关于android startActivityForResult,intent为空
- 详细谈谈intent的startActivityForResult()方法
- Intent系列之二:startActivityForResult()的用法
- Android startActivityForResult(intent, requestCode)的用法。
- intent的startActivityForResult()方法使用注意事情
- TensorFlow入门(1)
- Oracle数据库安装并配置PL/SQL连接方式
- pandas之read_excel()和to_excel()函数解析
- 20171214
- HTTP请求中的请求字段
- Intent startActivityForResult传值
- react 入门-创建组件(2)无状态功能函数法
- Servlet3.0的注解支持
- 数据结构之堆排序(java)
- bpython:界面丰富的Python解析器
- 文件映射实现对文件信息的增删改查
- IE/FIREFOX/CHROME等浏览器保存COOKIE的位置
- 6、MyBatis的动态SQL
- SSL_2289 庆功会