`
Dewing
  • 浏览: 6180 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论
  • MNTMs: 这是饼,还不是球,java中自带有一个画圆的方法,是可以设置颜 ...
    线程游戏

Android页面跳转

阅读更多

    Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一。在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Android 中的页面跳转即是从一个 Activity  跳转到另外一个Activity ,在 Android 中 Activity 拥有四种基本状态:

   1.Active/Runing

一个新 Activity 启动入栈后,它显示在屏幕最前端,处理是处于栈的最顶端(Activity栈顶),此时它处于可见并可和用户交互的激活状态,叫做活动状态或者运行状态(active or running)。

    2.Paused

    当 Activity失去焦点, 被一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶,此时的状态叫做暂停状态(Paused)。此时它依然与窗口管理器保持连接,Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被强行终止掉。所以它仍然可见,但已经失去了焦点故不可与用户进行交互。

    3. Stoped

    如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被强行终止掉。

    4. Killed

    如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。

 Android 中页面跳转大致分为三种情形:

    1.从 A 跳转到 B ,不带任何参数传递;

    2.从 A 跳转到 B ,带有参数传递;

    3.从 A 跳转到 B ,A 接受 B 返回的数据并且做出相应处理;

我们使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,然后新的Activity使用setResult(int resultCode)只返回结果不带数据,或者setResult(int resultCode, Intent data)两者都返回!当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。
requestCode,请求码:请求码的值是根据业务需要由自已设定,用于标识请求来源。
例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。
使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity在onActivityResult()方法,如果需要知道新Activity是由那个按钮打开的,并且要做出相应的业务处理。
resultCode,结果码:在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(ResultActivity和NewActivity为要打开的新Activity)。

 代码如下:

FirstActivity.java

 

package com.example.pagejump;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class FirstActivity extends Activity {
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_first);
	}

	//创建页面跳转skip方法
	public void skip(View view){
		Intent intent = new Intent(this, SecondActivity.class);
		intent.putExtra("msg", "来自第一个Activity!");
//		startActivity(intent);
		
		int requestCode = 0;
		//调用该方法实现跳转
		this.startActivityForResult(intent, requestCode);
			
	}
		
	//该方法用于接收第二个界面返回的参数
	protected void onActivityResult(int requestCode, int resultCode,Intent data){
		if(requestCode==0){
			//接受第二个界面返回的参数,显示在界面上
			TextView tv = (TextView)this.findViewById(R.id.textView1);
			tv.setText("requestCode="+requestCode+
					", 第二个Activity返回结果:"+data.getStringExtra("result"));
		}
	}
}

activity_first.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"  
    tools:context="com.example.pagejump.FirstActivity" 
    android:orientation="vertical" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
  
    <Button
             android:id="@+id/btnSkip"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:onClick="skip"
             android:text="@string/btn_skip"  />
</LinearLayout>

 SecondActivity.java

package com.example.pagejump;

import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

public class SecondActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		
		//接收前面一个界面传递的对象
		String msg = getIntent().getStringExtra("msg");
	    TextView tv = (TextView)this.findViewById(R.id.textView1);
		tv.setText("第一个Activity传递来的值为:"+msg);
		
	}
	
	public void back(View view){
		Intent intent = new Intent();
		//把要返回的参数放在intent对象中
		intent.putExtra("result", "来自第二个Activity的值!");
		setResult(0,intent);
		this.finish();
	}
	
}

 activity_second.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.pagejump.SecondActivity" 
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <Button
        android:id="@+id/btnBack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="back"
        android:text="@string/btn_back"  />

</LinearLayout>

 


  • 大小: 49 KB
分享到:
评论

相关推荐

    android页面跳转案例

    综上所述,这个案例涵盖了Android页面跳转、RTSP视频播放、MediaPlayer的使用,以及基本的Android项目结构。通过学习和实践这些知识点,开发者可以构建起一个能够播放远程RTSP视频的Android应用。

    Android页面跳转传值

    本篇文章将详细解析Android页面跳转和传值的过程,以及如何有效地利用`Intent`。 一、页面跳转 在Android中,页面跳转主要通过`Intent`对象实现。`Intent`是用来表示应用中一个操作的意图,它可以用于启动一个新的...

    android页面跳转传值

    本篇将深入探讨"android页面跳转传值"这个主题,重点关注Intent的使用以及如何通过Bundle来传递数据。 1. **Intent的基本概念** Intent是Android中的一个类,它表示应用程序想要完成的一个动作(如打开网页、发送...

    android初级页面跳转功能实现

    总的来说,Android页面跳转是一个基础但关键的技能,开发者需要理解Intent的工作原理,熟悉Activity和Fragment的生命周期,以及如何在它们之间进行有效地导航。随着经验的积累,你将能够自如地处理各种复杂的页面...

    Android页面跳转并调出消息发送窗口源代码

    首先,我们来了解一下Android页面跳转的基本原理。在Android中,页面跳转通常通过Intent对象来实现。Intent是一个用来表示应用中一个动作的抽象描述,它可以启动一个新的Activity或者Service。创建一个Intent对象,...

    android intent 页面跳转

    本文将深入探讨“Android Intent”在页面跳转和数据传递中的应用,结合“Chapter06_Intent_01”示例进行详细解析。 一、Intent的基本概念 Intent是一个消息对象,它表达了应用的意图,告诉系统想要执行的操作。...

    Android 单击实现页面跳转

    在Android应用开发中,页面跳转是用户交互中不可或缺的一部分,它使得用户能够在不同的Activity之间进行切换,体验应用的...在URLTest这个示例项目中,你可以进一步探索这些概念,加深对Android页面跳转机制的理解。

    Android-Android界面跳转传递参数封装

    在Android应用开发中,界面间的跳转和参数传递是常见的操作。`Android-Android界面跳转传递参数封装`这个主题主要关注如何通过编程的方式优化这一过程,提高代码的可读性和可维护性。通常,开发者会使用Intent来实现...

    android页面跳转

    android studio的各个页面之间的跳转,适用于安卓开发,有需要的可以下载看看,是否符合需求,就这样了android studio的各个页面之间的跳转,适用于安卓开发,有需要的可以下载看看,是否符合需求,就这样了

    android开发页面跳转

    总之,Android页面跳转涉及Intent、Activity、数据传递等多个核心概念,理解并熟练掌握这些知识点对于构建功能丰富的Android应用至关重要。在实际开发中,根据需求灵活运用这些工具,可以构建出用户友好的交互体验。

    android两种方式页面跳转的下例子

    以上就是Android中页面跳转的两种常见方式。直接跳转适用于不需要返回结果的情况,而携带结果的跳转则适用于需要数据交互的场景。理解并熟练运用这两种方法,能帮助开发者更好地设计和实现Android应用的界面流程。在...

    Androidstudio实现页面跳转和传递参数

    在Android应用开发中,页面跳转和数据传递是至关重要的环节。使用Android Studio作为集成开发环境,我们可以方便地实现这些功能。本篇文章将详细介绍如何在Android Studio中进行页面跳转并传递参数,以及如何利用...

    android-页面跳转-Activity&Intent详解,Bundle类介绍说明.doc

    Android 页面跳转和 Intent 详解,Bundle 类介绍说明 Android 页面跳转是移动应用程序中的一种基本交互方式,通过 Intent 和 Activity 两个组件来实现。Intent 是 Android 中的一个核心组件,用于在不同的 Activity...

    页面之间的跳转完整代码

    以上就是Android页面跳转的基本知识,"AndroidDemo2_7"压缩包中应包含了一个完整的示例,展示了如何在实际项目中实现页面跳转。通过学习并运行这个示例,你将更深入地理解这一关键功能。记得实践是检验真理的唯一...

    知识共享-Android实现页面跳转的几种方式(雷惊风).

    本文档详细介绍了几种实现Android页面跳转的方法,并通过实例代码进行了具体演示。 #### 第一种方式:使用Action跳转 ##### Action概念解析 - **Action**:在Android中,`Intent`用来描述应用组件间的一种请求或...

    android各种页面跳转实例

    在Android应用开发中,页面跳转是至关重要的一个环节,它涉及到用户界面的导航...ActivityDemo这个项目可能包含了一系列的示例代码,涵盖了上述各种跳转方式,通过实践操作,相信您对Android页面跳转会有更深入的理解。

    android界面跳转动画特效

    页面跳转动画特效能够使应用更具吸引力,为用户提供更直观、动态的交互体验。本教程将深入探讨如何在Android中实现“android界面跳转动画特效”,包括旋转(rotate)、平移(translate)、缩放(scale)以及透明度...

    android中关于选项菜单跳转页面

    android 选项菜单 页面跳转用setcontentview

Global site tag (gtag.js) - Google Analytics