Activity跳转主要有两种方式,如下所示:
1. 两个Activity之间普通跳转
从一个Activity跳至另一个Activity,需要用到Intent(意图)这个东东,代码示例如下:
Intent intent = new Intent(当前Activity.this,目标Activity.class);
当前Activity.this.startActivity(intent);
2. 从源Activity跳转至目标Activity,目标Activity再回传值给源Activity
在Activity跳转中,如果需要Activity的回传值,再进行其他操作,怎么实现呢?
1). 源Activity重写onResume()方法
这种方式一般情况下是不推荐,但是针对一些特殊情况推荐使用,毕竟Android中Activity跳转时,一般接收的是值类型的信息,这个方法可以更全面的接收回传的信息。这个就不做解释了,做项目时用过,还比较好用,就是代码写的时候会相对复杂些。
2). 源Activity重新onActivityResult()方法
这种方式还是推荐使用的,通过重写onActivityResult()方法,可以方便的接收目标Activity的回传值,关键是注意Activity跳转的方式,源Activity跳转至目标Activity采用startActivityForResult()方法,而目标Activity关闭跳会源Activity时采用setResult()方法。
Demo代码如下:
源Activity:
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- /**
- * 源Activity,传送数据给目标Activity并接收目标Activity的回传值
- * */
- public class MainActivity extends Activity {
- //定义显示接收Activity传入值的TextView
- private TextView tv_main_result = null;
- //定义跳转的Button按钮
- private Button btn_main_skip = null;
- //定义一个startActivityForResult()方法用到的整型值
- private final int requestCode = 1500;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initView();
- }
- /**
- * 初始化控件信息
- * */
- public void initView(){
- tv_main_result = (TextView)findViewById(R.id.tv_main_result);
- btn_main_skip = (Button)findViewById(R.id.btn_main_skip);
- btn_main_skip.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(MainActivity.this,RsActivity.class);
- //采用Intent普通传值的方式
- intent.putExtra("skip", "我是MainActivity传过来的值!");
- //跳转Activity
- startActivityForResult(intent, requestCode);
- }
- });
- }
- /**
- * 接收当前Activity跳转后,目标Activity关闭后的回传值
- */
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- switch(resultCode){
- case RESULT_OK:{//接收并显示Activity传过来的值
- Bundle bundle = data.getExtras();
- String rs = bundle.getString("rs");
- tv_main_result.setText(rs);
- break;
- }
- default:
- break;
- }
- }
- }
目标Activity:
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- /**
- * 目标Activity,接收Activity传入值并回传值给源Activity
- * */
- public class RsActivity extends Activity {
- //定义显示接收Activity传入值的TextView
- private TextView tv_rs_result = null;
- //定义跳转的Button按钮
- private Button btn_rs_skip = null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_rs);
- initView();
- }
- /**
- * 初始化控件信息
- * */
- private void initView(){
- //接收Activity传过来的值
- final Intent data = getIntent();
- tv_rs_result = (TextView)findViewById(R.id.tv_rs_result);
- //将Activity传过来的值赋给textview显示
- tv_rs_result.setText(data.getStringExtra("skip"));
- btn_rs_skip = (Button)findViewById(R.id.btn_rs_skip);
- btn_rs_skip.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {//采用Intent绑定Bundle的形式回传值
- //新建一个Bundle,Bundle主要放值类型
- Bundle bundle = new Bundle();
- bundle.putString("rs", "我是RsActivity关闭后回传的值!");
- //将Bundle赋给Intent
- data.putExtras(bundle);
- //跳转回MainActivity
- //注意下面的RESULT_OK常量要与回传接收的Activity中onActivityResult()方法一致
- RsActivity.this.setResult(RESULT_OK, data);
- //关闭当前activity
- RsActivity.this.finish();
- }
- });
- }
- }
相关推荐
android activity之间的跳转
Activity之间的跳转是Android应用中常见的操作,用于实现不同界面之间的切换。本示例程序是针对初学者设计的一个简单教学项目,旨在帮助理解并掌握Android Activity间的跳转机制。 首先,了解Activity的基本概念。...
在Activity之间跳转时,我们通常创建一个Intent对象,并用它来指定要启动的目标Activity。例如: ```java Intent intent = new Intent(currentActivity, TargetActivity.class); startActivity(intent); ``` 如果...
### Android源程序实现两个Activity之间的跳转 在Android开发中,`Activity`是构成应用程序的基本单元之一,负责处理用户交互并展示界面。本文将详细解释如何通过代码实现两个`Activity`之间的跳转,并分析给定的`...
本文将深入探讨5.x之前和5.x之后Android系统中Activity跳转动画的设计与实现。 在Android 5.0(API级别21)之前,Activity的跳转动画主要依赖于`android.R.anim`和`android.R.transition`中的预定义动画。开发者...
本文将深入探讨"android activity跳转动画最全集合"中的各种动画效果,并解释如何在实际项目中实现这些过渡效果。 首先,Activity的跳转动画分为进入动画(Enter Animation)和退出动画(Exit Animation)。进入...
总结,Activity跳转是Android开发中不可或缺的部分,理解Intent、启动模式以及返回结果的处理对于构建复杂的Android应用至关重要。通过熟练掌握这些知识点,开发者可以更自如地控制应用的导航流程,为用户提供更好的...
总结,Android Activity的跳转和数据传递是开发过程中的基本操作。通过Intent我们可以方便地启动新Activity,传递数据,并在新Activity中接收结果。随着Android版本的更新,API也在不断演进,开发者需要关注最新的...
Activity之间的跳转是Android应用中常见的操作,用于实现用户在不同界面间的导航。下面将详细介绍如何在Android中实现Activity之间的跳转,并探讨相关的知识点。 1. **Intent的使用** Intent是Android中实现组件间...
一、Intent:Activity跳转的桥梁 1. Intent概述:Intent是一种消息对象,用于在Android组件之间传递请求和数据。在Activity跳转中,Intent扮演着关键角色,它包含了启动另一个Activity所需的信息。 2. 创建Intent...
本篇将深入探讨Android的Activity跳转动画,包括其基本原理、实现方式以及如何自定义动画。 1. 基本原理: Android的Activity跳转动画基于视图动画(View Animation)和属性动画(Property Animation)系统。视图...
特别是当我们需要从一个Activity跳转到另一个Activity,并希望在完成某些操作后能够将数据回传给原始Activity时,就需要使用特定的技术来实现这一功能。本文将详细介绍如何使用`startActivityForResult()`来实现在...
Activity之间的跳转和数据交互传递是Android开发中的核心技能,对于构建功能丰富的应用至关重要。本篇文章将详细探讨这两个主题。 首先,我们来看Activity之间的跳转。在Android中,启动一个新Activity通常通过...
启动模式在Activity跳转中起着重要作用。Android提供四种默认的启动模式:标准模式(standard)、单实例模式(singleInstance)、单任务模式(singleTask)和单栈顶模式(singleTop)。标准模式是最常见的,每次启动...
总结,Android平台为开发者提供了丰富的动画机制,允许我们根据需求创建各种各样的Activity跳转效果。通过熟练掌握这些技巧,你可以为用户带来更加引人入胜的应用体验。在实际项目中,结合具体需求选择合适的动画...
总结来说,Android中的Activity跳转是通过Intent进行的,可以显式或隐式启动,传递数据,选择不同的启动模式,同时还需要理解Activity的生命周期和返回栈管理,以便构建高效、用户体验良好的应用。在实际开发中,应...
### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...
总结来说,实现Android Activity跳转主要涉及Intent的创建、启动以及在AndroidManifest.xml中的声明。理解并掌握这些基础知识,对于初学者来说是非常重要的,也是构建Android应用的基础。通过实践和理解,你将能够...
总结一下,Android中的Activity跳转涉及以下关键点: 1. 在AndroidManifest.xml中声明Activity。 2. 使用Intent对象创建并启动Activity。 3. 可以在Intent中传递数据。 4. 使用不同的FLAG控制Activity的启动行为。 ...
以上是Android中Activity跳转的主要方式,每个方法都有其特定的应用场景。在实际开发中,开发者应根据需求选择合适的方式进行Activity间的交互。通过理解并熟练掌握这些方法,你可以构建更加流畅、功能丰富的Android...