android:startActivityForResult方法的Activity跳转
时间:2019-11-23
本文章向大家介绍android:startActivityForResult方法的Activity跳转,主要包括android:startActivityForResult方法的Activity跳转使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、不带数据的activityt跳转可以通过如下代码跳转,两个activity之间没有数据传递;
Intent intent = new Intent(this ,跳转的activity.class) staintentrtActivity(intent)
而在应用中还需要用到将一个activity的数据返回给另一个activity进行处理,本节介绍其中一种携带数据跳转的activity方法。
先有个概念,携带数据跳转的activity可以分为三个步骤:
1 首先在Activity1中调用方法startActivityForResult(),然后这时activity就跳转到了Activity2;
2 然后在Activity2中将处理完的数据放入bundle中,绑定到intent上,
调用方法setResult()把数据传递给Activity1,调用finish()方法将当前activity关闭;
3 最后在Activity1中添加一个onResultActivity(),用来处理setResult()传递过来的bundle数据。
以上步骤没有为什么,格式就是这样子,套用就行了。
2、以下我们上代码,具体分析见注释。代码的功能是在EditActivity中输入内容,然后按下button跳转回MainActivity之后,将内容显示在方框中;
代码GitHub地址:https://github.com/caesura-k/jump_activity.git
2.1、两个activity的页面如下:
2.2、MainActivity的代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView tv_message; private Button btn_jump; public static final int REQ_CODE_COMM_SET = 1; /*request code:正整型数值就行,为了便于理解,取个名字*/ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_message= (TextView) this.findViewById(R.id.tv_message); tv_message.setOnClickListener(this); btn_jump= (Button) this.findViewById(R.id.btn_jump); btn_jump.setOnClickListener(this); } @Override public void onClick(View view) { if(btn_jump.equals(view)){ Intent intent =new Intent(this,EditActivity.class); startActivityForResult(intent,REQ_CODE_COMM_SET); /*startActivity跳转到另一个activity,返回的时候不会携带数据 *startActivityForResult跳转到另一个activity,返回的时候可以带数据返回至当前activty, * 返回携带的数据在onActivityResult中接收处理,以上步骤是定义,没有为什么*/ } } protected void onActivityResult(int requestCode, int resultCode, Intent intent){ if (requestCode == REQ_CODE_COMM_SET) { if (resultCode == RESULT_OK) { Bundle bundle = intent.getExtras(); String message = bundle.getString("message"); tv_message.setText(message); Log.d("intent with bundle", " setting succ"); } else if (resultCode == RESULT_CANCELED) { } } } } /* A Activity携带数据返回至B Activity时,则会自动调用B Activity的onAcvitityResult方法来处理数据; * 1、参数requestCode: * 正整数;如果有多个activity跳转返回至当前activity,request code可以区分出来,方便处理不同的数据 * 2、参数resultCode: * 只有两个值,RESULT_OK、RESULT_CANCEL;表示activity是否跳转成功;要是被中断,值为RESULT_CANCEL * 3、参数intent: * 就是前一个页面携带数据的intent * */
2.3、EditActivity的代码:
public class EditActivity extends AppCompatActivity implements View.OnClickListener { private EditText et_enter ; private Button btn_back ; String message ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit); et_enter = (EditText) findViewById(R.id.et_enter); et_enter.setOnClickListener(this); btn_back = (Button) findViewById(R.id.btn_back); btn_back.setOnClickListener(this); } @Override public void onClick(View view) { if(btn_back.equals(view)){ message= et_enter.getText().toString(); Bundle bundle =new Bundle(); bundle.putString("message",message); Intent intent = new Intent(this,MainActivity.class); intent.putExtras(bundle); setResult(RESULT_OK, intent); finish(); } } } /*将数据放入bundle中,然后将bundle绑定到intent上, *然后将intent放入setResult()方法中,intent就传给了onActivityResult()*/
原文地址:https://www.cnblogs.com/caesura-k/p/11909907.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 你不知道的 Linux 使用技巧
- 一文详解 Websocket 的前世今生
- 实例 | 教你用Python写一个电信客户流失预测模型
- OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测
- 看了这个总结,其实 Matplotlib 可视化,也没那么难!
- 使用OpenCV进行模糊检测(拉普拉斯算子)
- 利用opencv对图像进行长曝光
- 总说手机没有“好壁纸”,Python一次性抓取500张“美女”图片,够不够用!
- KEDA发布2.0(Beta)|来一个伸缩测试
- pandas入门:Series、DataFrame、Index基本操作都有了!
- 这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!
- 手把手教你用 Python 搞定网页爬虫!
- 为并发而生的 ConcurrentHashMap,基于 Java8 分析
- 使用Kustomize定制Helm Chart
- 踩坑了,JDK8 中 HashMap 依然会产生死循环问题!