35Activity入门和跳转

1.Activity

Activity是用户接口程序。在Android当中,Activity提供可视化的用户界面,一个Android应用通常由多个activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由android系统来控制。

在Activity中包含一个window对象,在Window对象中通常包含一个布局容器对象(如一个LinearLayout布局对象),在布局对象中包含各种UI组件。Android的activity是具有严格层次结构的,类似于数型的对象结构。

一、activity生命周期

由图可知:

  在一个Activity正常启动过程中,这些方法调用的顺序是onCreate -> onStart -> onResume;在Activity被kill掉的时候方法顺序是onPause-> onStop -> onDestroy,此为一个完整的Lifecycle。那么对于中断处理(比如电话来了),则是onPause -> onStop,恢复时onStart -> onResume;如果当前应用程序的是一个Theme为Translucent(半透明)或者Dialog 的Activity那么中断就是onPause
,恢复的时候onResume。

二、自己配置Activity

1、自定义Activity类时,都必须继承Activity类;

2、重写onCreate (Bundle savedInstanceState)方法,该方法在Activity第一次运行时,Activity框架会调用这个方法;

3、每一个Activity都需要在配置文件AndroidManifest.xml中进行配置。在AndroidManifest.xml当中的Application节点下,配置Activity信息。一般要求配置的是android:name和android:label。其中android:name="包名.类名"  路径可以写全包名,也可以写 android:name=".MyActivity"。
android:label="程序将展示在activity页面上的名称"。而<intent-filter></intent-filter>是指默认首先启动的Activity。

<activity

android:name="com.example.test_activity.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<categoryandroid:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

4、为Activity添加必要的控件,如何添加呢?在layout文件夹中创建一个声明一个xml格式的布局文件myactivity.xml,然后再在这个布局文件中对Activity的布局以及不同的控件进行设置。将其渲染到MyActivity中 setContentView(R.layout.myactivity);

5、再在第一步定义的Activity子类中通过findViewById(R中对应的id类中控件的id)方法来获取布局文件中声明的控件,前提是布局文件中必须声明这些控件的id.

二、自动配置Activity

直接创建项目Activity

2.Intent

Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。

#通过Context.startActivity()orActivity.startActivityForResult()启动一个Activity;

#通过Context.startService()启动一个服务,或者通过Context.bindService()和后台服务交互;

#通过广播方法(比如Context.sendBroadcast(),Context.sendOrderedBroadcast(),Context.sendStickyBroadcast())发给broadcast
receivers。

三、Activity之间的跳转

实际应用中,经常需要从一个activity跳转到另一个activity,activity之间的跳转需要通过Intent对象实现。它象征了请求,其中包含了请求执行的动作,携带的数据等等信息。

使用startActivity(Intent intent)来执行另外一个Activity。

public void test(View view){

Intent intent=new Intent();                                         //生成一个Intent对象

//由该Activity跳转到SecondActivity ,其中第一个参数是启动Intent的Activity,第二个参数是被启动的Activity。

intent.setClass(this,SecondActivity.class);

this.startActivity(intent);                                             //通过Intent对象启动另外一个Activity

}

四、Activity之间信息传递

前一个Activity传递信息到下一个Activity 。Activity之间可以传递数据,而且Activity不仅仅必须在同一个应用程序内,也可以在不同的应用程序之间。

首先,在前一个Activity中将需要传递的信息通过intent.putExtra ("key", "value")传递;

public void test(View view) {

EditText editText=(EditText) findViewById(R.id.editText1);

String uname=editText.getText().toString();

Intent intent=new Intent();                                //生成一个Intent对象

intent.setClass(this, SecondActivity.class); //设置Intent对象要启动的Activity

intent.putExtra("uname", uname);                 //在Intent对象当中添加一个键值对

this.startActivity(intent);                                    //通过Intent对象启动另外一个Activity

}

然后,在下一个接收端Activity接收,利用getIntent()得到从另外一个Activity中传递过来的Intent对象,利用intent.getStringExtra ("key")来取得值;

Intent intent=this.getIntent();

String uname=intent.getStringExtra("uname");

TextView textView=(TextView) findViewById(R.id.textView1);

textView.setText(uname);

五、通过layout的切换实现类似Activity切换的效果

this.setContentView(R.layout.activity_second);

从这个layout切换到activity_second.xml

第35讲 Activity入门和跳转的更多相关文章

  1. Android中实现activity的页面跳转并传值

    一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求. 本次我们就讲一下,Android中页面跳转以及传值的几种方式 ...

  2. Android Activity间动画跳转

    本博文主要介绍activity间动画跳转的问题,在这里讲一下怎么设置全部activity的动画跳转和退出跳转.事实上有些软件已经这样做了.比方我们都比較熟悉的大众点评网. 以下我们通过一个实例来看一下 ...

  3. Android开发之Activity的创建跳转及传值

    在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider).今天所介 ...

  4. 实现android activity之间的跳转

    android程序一般不会只有一个activity,会碰到activity之间的跳转.以下是使用Intent做应用程序内部的activity做跳转.比如,应用程序第一个activity是: 点击“下一 ...

  5. 杂记之activity之间的跳转

    代码结构图 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xml ...

  6. C语言第七讲,函数入门.

    C语言第七讲,函数入门. 一丶了解面向过程和面向对象的区别. 为什么要先讲面向过程和面向对象的区别? 面向过程,就是什么都要自己做.  比如你要吃饭. 那么你得自己做饭. 面向对象, 面向对象就是我要 ...

  7. 安卓开发 Activity入门

    生命周期 Activity包含5种状态,涉及7种方法 1. 启动状态 2. 运行状态 *** 即使内存不足,Android先销毁栈底的Activity,来确保当前Activity正常运行 3. 暂停状 ...

  8. Android activity之间的跳转和数据传递

    1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtr ...

  9. Android笔记(二十) Activity中的跳转和值传递

    我们知道,一个APP是由若干个Activity组成的,那么各个Acitivity中肯定需要进行跳转以及传递数值以保证App的运行,现总结一下多个Activity之间的跳转和值传递. 显式Intent跳 ...

随机推荐

  1. mysql简单练习

    数据库入门 2.1 引入 数据保存到内存: 优点: 1)读写非常快 缺点: 1)程序关闭导致数据丢失 数据保存到文件: 优点: 1)数据可以永久保存 缺点: 1)频繁地IO操作,效率不高! 2)数据管 ...

  2. [Angular 2] Using Array ...spread to enforce Pipe immutability

    Pipes need a new reference or else they will not update their output. In this lesson you will use th ...

  3. Python3.2官方文档翻译--继承

    6.5 继承 当然,一门语言特性假设不支持继承那么名称类就失去了价值.子类继承父类的方法例如以下: class DerivedClassName(BaseClassName): <stateme ...

  4. windows下php+apache+mysql环境搭建

    在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包. PHP版本:php-5.3.2-Win32-VC6-x86,VC9是专门为IIS定制的,VC ...

  5. 通知 Notification 详解

    效果 通知栏-刚收到通知时 通知栏-收到通知几秒后 标准视图 大视图-下滑前是标准视图 大视图-下滑后显示大视图 自定义通知 讲解 Notification,俗称通知,是一种具有全局效果的通知,它展示 ...

  6. Java:单例模式的七种写法(转载)

    第一种(懒汉,线程不安全): package Singleton; /** * @echo 2013-10-10 懒汉 线程不安全 */ public class Singleton1 { priva ...

  7. ADO.NET之使用DataGridView控件显示从服务器上获取的数据

    今天回顾下ADO.NET中关于使用DataGridiew控件显示数据的相关知识 理论整理: 使用 DataGridView 控件,可以显示和编辑来自多种不同类型的数据源的表格数据. SqlDataAd ...

  8. DG下手工处理v$archive_gap方法

    从9i以后,oracle dataguard 备库一般都不需要手工处理丢失的日志,FAL自动会帮我们处理,下面通过个案例来讲下手工处理丢失的日志的方法: 1.在备库查询有哪些日志丢失,没应用到备库 S ...

  9. ICP编程软件配置(烧写KEIL编译后的bin文件)

    1. 安装NuMicro_ICP_Programming_Tool_1.29.6425软件 2. 打开软件后选择目标芯片后点击“连接”按钮 3. 添加程序 4. 点击设定按钮进行设定 5. 点击开始 ...

  10. 在Web开发方面Java跟PHp八大对比

    在Web开发方面Java跟PHp八大对比 <本文摘自百度经验,用来简单对比一下这两种语言> 一. 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点.语法和c语言比 ...