`
翻晒时光
  • 浏览: 9256 次
文章分类
社区版块
存档分类
最新评论

Android Activity之间跳转总结

阅读更多

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:

[html] view plain copy
 
  1. import android.app.Activity;  
  2. import android.content.Intent;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.view.View.OnClickListener;  
  6. import android.widget.Button;  
  7. import android.widget.TextView;  
  8. /**  
  9.  * 源Activity,传送数据给目标Activity并接收目标Activity的回传值  
  10.  * */  
  11. public class MainActivity extends Activity {  
  12.       
  13.     //定义显示接收Activity传入值的TextView  
  14.     private TextView tv_main_result = null;  
  15.     //定义跳转的Button按钮  
  16.     private Button btn_main_skip = null;  
  17.     //定义一个startActivityForResult()方法用到的整型值  
  18.     private final int requestCode = 1500;  
  19.     @Override  
  20.     protected void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.activity_main);  
  23.         initView();  
  24.     }  
  25.     /**  
  26.      * 初始化控件信息  
  27.      * */  
  28.     public void initView(){  
  29.         tv_main_result = (TextView)findViewById(R.id.tv_main_result);  
  30.         btn_main_skip = (Button)findViewById(R.id.btn_main_skip);  
  31.         btn_main_skip.setOnClickListener(new OnClickListener() {  
  32.               
  33.             @Override  
  34.             public void onClick(View v) {  
  35.                 Intent intent = new Intent(MainActivity.this,RsActivity.class);  
  36.                 //采用Intent普通传值的方式  
  37.                 intent.putExtra("skip", "我是MainActivity传过来的值!");  
  38.                 //跳转Activity  
  39.                 startActivityForResult(intent, requestCode);  
  40.             }  
  41.         });  
  42.     }  
  43.       
  44.       
  45.     /**  
  46.      * 接收当前Activity跳转后,目标Activity关闭后的回传值  
  47.      */  
  48.     @Override  
  49.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  50.         super.onActivityResult(requestCode, resultCode, data);  
  51.         switch(resultCode){  
  52.             case RESULT_OK:{//接收并显示Activity传过来的值  
  53.                 Bundle bundle = data.getExtras();  
  54.                 String rs = bundle.getString("rs");  
  55.                 tv_main_result.setText(rs);  
  56.                 break;  
  57.             }  
  58.             default:  
  59.                 break;  
  60.             }  
  61.     }  
  62. }  


目标Activity:

[java] view plain copy
 
  1. import android.app.Activity;  
  2. import android.content.Intent;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.view.View.OnClickListener;  
  6. import android.widget.Button;  
  7. import android.widget.TextView;  
  8. /** 
  9.  * 目标Activity,接收Activity传入值并回传值给源Activity 
  10.  * */  
  11. public class RsActivity extends Activity {  
  12.       
  13.     //定义显示接收Activity传入值的TextView  
  14.     private TextView tv_rs_result = null;  
  15.     //定义跳转的Button按钮  
  16.     private Button btn_rs_skip = null;  
  17.       
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.activity_rs);  
  22.         initView();  
  23.     }  
  24.   
  25.     /** 
  26.      * 初始化控件信息 
  27.      * */  
  28.     private void initView(){  
  29.         //接收Activity传过来的值  
  30.         final Intent data = getIntent();  
  31.         tv_rs_result = (TextView)findViewById(R.id.tv_rs_result);  
  32.         //将Activity传过来的值赋给textview显示  
  33.         tv_rs_result.setText(data.getStringExtra("skip"));  
  34.           
  35.         btn_rs_skip = (Button)findViewById(R.id.btn_rs_skip);  
  36.         btn_rs_skip.setOnClickListener(new OnClickListener() {  
  37.               
  38.             @Override  
  39.             public void onClick(View v) {//采用Intent绑定Bundle的形式回传值  
  40.                   
  41.                 //新建一个Bundle,Bundle主要放值类型  
  42.                 Bundle bundle = new Bundle();  
  43.                 bundle.putString("rs""我是RsActivity关闭后回传的值!");  
  44.                 //将Bundle赋给Intent  
  45.                 data.putExtras(bundle);  
  46.                 //跳转回MainActivity  
  47.                 //注意下面的RESULT_OK常量要与回传接收的Activity中onActivityResult()方法一致  
  48.                 RsActivity.this.setResult(RESULT_OK, data);  
  49.                 //关闭当前activity  
  50.                 RsActivity.this.finish();  
  51.             }  
  52.         });  
  53.     }  
  54. }  
分享到:
评论

相关推荐

    android activity之间的跳转

    android activity之间的跳转

    android activity之间跳转的示例程序

    Activity之间的跳转是Android应用中常见的操作,用于实现不同界面之间的切换。本示例程序是针对初学者设计的一个简单教学项目,旨在帮助理解并掌握Android Activity间的跳转机制。 首先,了解Activity的基本概念。...

    Android Activity跳转和listview的使用

    在Activity之间跳转时,我们通常创建一个Intent对象,并用它来指定要启动的目标Activity。例如: ```java Intent intent = new Intent(currentActivity, TargetActivity.class); startActivity(intent); ``` 如果...

    Android源程序实现两个Activity之间的跳转

    ### Android源程序实现两个Activity之间的跳转 在Android开发中,`Activity`是构成应用程序的基本单元之一,负责处理用户交互并展示界面。本文将详细解释如何通过代码实现两个`Activity`之间的跳转,并分析给定的`...

    AndroidActivity跳转动画

    本文将深入探讨5.x之前和5.x之后Android系统中Activity跳转动画的设计与实现。 在Android 5.0(API级别21)之前,Activity的跳转动画主要依赖于`android.R.anim`和`android.R.transition`中的预定义动画。开发者...

    android activity跳转动画最全集合

    本文将深入探讨"android activity跳转动画最全集合"中的各种动画效果,并解释如何在实际项目中实现这些过渡效果。 首先,Activity的跳转动画分为进入动画(Enter Animation)和退出动画(Exit Animation)。进入...

    android代码 Activity跳转

    总结,Activity跳转是Android开发中不可或缺的部分,理解Intent、启动模式以及返回结果的处理对于构建复杂的Android应用至关重要。通过熟练掌握这些知识点,开发者可以更自如地控制应用的导航流程,为用户提供更好的...

    实现androidActivity的跳转,数据返回,传数据

    总结,Android Activity的跳转和数据传递是开发过程中的基本操作。通过Intent我们可以方便地启动新Activity,传递数据,并在新Activity中接收结果。随着Android版本的更新,API也在不断演进,开发者需要关注最新的...

    实现Activity之间跳转

    Activity之间的跳转是Android应用中常见的操作,用于实现用户在不同界面间的导航。下面将详细介绍如何在Android中实现Activity之间的跳转,并探讨相关的知识点。 1. **Intent的使用** Intent是Android中实现组件间...

    Android Activity之间的跳转

    一、Intent:Activity跳转的桥梁 1. Intent概述:Intent是一种消息对象,用于在Android组件之间传递请求和数据。在Activity跳转中,Intent扮演着关键角色,它包含了启动另一个Activity所需的信息。 2. 创建Intent...

    Android的Activity跳转动画

    本篇将深入探讨Android的Activity跳转动画,包括其基本原理、实现方式以及如何自定义动画。 1. 基本原理: Android的Activity跳转动画基于视图动画(View Animation)和属性动画(Property Animation)系统。视图...

    android Activity之间数据的回传

    特别是当我们需要从一个Activity跳转到另一个Activity,并希望在完成某些操作后能够将数据回传给原始Activity时,就需要使用特定的技术来实现这一功能。本文将详细介绍如何使用`startActivityForResult()`来实现在...

    Android Activity之间的跳转以及数据的交互传递

    Activity之间的跳转和数据交互传递是Android开发中的核心技能,对于构建功能丰富的应用至关重要。本篇文章将详细探讨这两个主题。 首先,我们来看Activity之间的跳转。在Android中,启动一个新Activity通常通过...

    Activity之间的跳转项目案例实现

    启动模式在Activity跳转中起着重要作用。Android提供四种默认的启动模式:标准模式(standard)、单实例模式(singleInstance)、单任务模式(singleTask)和单栈顶模式(singleTop)。标准模式是最常见的,每次启动...

    android中activity跳转的几种动画

    总结,Android平台为开发者提供了丰富的动画机制,允许我们根据需求创建各种各样的Activity跳转效果。通过熟练掌握这些技巧,你可以为用户带来更加引人入胜的应用体验。在实际项目中,结合具体需求选择合适的动画...

    android之activity跳转 窗口跳转

    总结来说,Android中的Activity跳转是通过Intent进行的,可以显式或隐式启动,传递数据,选择不同的启动模式,同时还需要理解Activity的生命周期和返回栈管理,以便构建高效、用户体验良好的应用。在实际开发中,应...

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    ### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...

    android实现activity跳转

    总结来说,实现Android Activity跳转主要涉及Intent的创建、启动以及在AndroidManifest.xml中的声明。理解并掌握这些基础知识,对于初学者来说是非常重要的,也是构建Android应用的基础。通过实践和理解,你将能够...

    Android上Activity之间跳转

    总结一下,Android中的Activity跳转涉及以下关键点: 1. 在AndroidManifest.xml中声明Activity。 2. 使用Intent对象创建并启动Activity。 3. 可以在Intent中传递数据。 4. 使用不同的FLAG控制Activity的启动行为。 ...

    android activity各种方式跳转 经典完整代码

    以上是Android中Activity跳转的主要方式,每个方法都有其特定的应用场景。在实际开发中,开发者应根据需求选择合适的方式进行Activity间的交互。通过理解并熟练掌握这些方法,你可以构建更加流畅、功能丰富的Android...

Global site tag (gtag.js) - Google Analytics