四大组件--Activity(一)

1.Activity简介(★★)
Activity是Android
四大组件之一,它用于展示界面。Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过
setContentView(View)来显示指定控件。在一个android 应用中,一个
Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。

2.Activity之间的跳转(★★★★)
Activity之间的跳转分为2种:
(1)显式跳转:在可以引用到那个类,
并且可以引用到那个类的字节码时可以使用。一般用于自己程序的内部。显式跳转不可以跳转到其他程序的页面中。
(2)隐式跳转:可以在当前程序跳转到另一个程序的页面。隐式跳转不需要引用到那个类,但是必须得知道那个界面的动作(action)和信息(category)。
Activity之间通过Intent进行通信。Intent即意图,用于描述一个页面的信息,同时也是一个数据的载体。
案例-显式跳转:显式跳转必须知道并且能够使用要跳转的Activity的字节码,所以显式跳转一般只能用于自己程序的内部的跳转,而不能跳转到其他程序的Activity。
Tips:为了方便演示,我们创建一个新的
Android 工程《Activity 跳转》。然后创建两个Activity
类,分别为FirstActivity,和SecondActivity,并在Android
工程清单文件
中声明这两个Activity类。工程清单中添加Activity配置如下。

<activity
  android:name="com.itheima.activitySkip.FirstActivity"
  android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name="com.itheima.activitySkip.SecondActivity"/>  

添加activity到清单文件中

修改 FirstActivity 布局文件(activity_first.xml),并将该布局文件复制并修改名字为

activity_second.xml作为SecondActivity的布局文件。

 1 <LinearLayout
 2     xmlns:android=http://schemas.android.com/apk/res/android
 3     xmlns:tools=http://schemas.android.com/tools
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="vertical"
 7     tools:context=".FirstActivity" >
 8     <TextView
 9         android:layout_gravity="center_horizontal"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:textColor="#ff0000"
13         android:text=" 我是第一个 Activity" />
14     <Button
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:text=" 跳转到第二个 Activity"
18         android:onClick="skip2Second" />
19 </LinearLayout>

activity_second.xml

2.1 显式跳转
编写FirstActivity类:

package com.itheima.activitySkip;

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

public class FirstActivity extends Activity {
    @Override protected void onCreate(Bundle     savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
    }
    public void skip2Second(View view){
        //创建一个 Intent 对象,并传递当前对象(Context 对象)和要跳转的 Activity 类字节码
        Intent intent = new Intent(this, SecondActivity.class);
        //启动第二个 Activity
        startActivity(intent);
    }
}

FirstActivity

运行上面的工程,点击按钮,发现成功跳转到了第二个 Activity页面。

2.2 隐式跳转
隐式跳转可以跳转到其他程序的
Activity,只要知道Activity的动作(action)以及信息(category)。因此,能够被隐式跳转的Activity,在清单文件中声明时必须指定动作和信息这两个属性。
(1)修改工程清单文件中SecondActivity的配置信息。

<activity android:name="com.itheima.activitySkip.SecondActivity">
    <!-- 配置意图过滤器 –>
    <intent-filter >
    <!-- 在意图过滤器中设置 action 和 category,当有匹配的 action 和 category 的时候启动该 Activity。这里使用 Android 提供的默认 category 即可 –>
        <action android:name="com.itheima.activitySkip.SecondActivity"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

在清单文件中配置隐式意图

(2)修改在2.1章节中FirstActivity类

//创建一个 Intent 对象
Intent intent = new Intent();
//设置 Action intent.setAction("com.itheima.activitySkip.SecondActivity");
//对于 android.intent.category.DEFAULT 类型的信息为 Android 系统 默认的信息,省略也可以
intent.addCategory("android.intent.category.DEFAULT");
//启动 Activity startActivity(intent);

隐式意图的跳转意图

执行上面的代码,发现实现了Activity的跳转。

Tips:若清单文件中的Activity声明为:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

将Activity作为程序入口的意图过滤器

则此Activity将作为程序的入口,有几个作为入口的Activity,apk文件安装的时候就会生成几个图标。

3.案例-Activity隐式跳转(★★★)
Android 系统中本身存在很多的应用程序,打开系统源码,查看
packages
文件夹下
的apps文件夹,里面存放着Android系统的这些应用程序。
若想跳转到这些应用程序中,只需打开对应应用程序的清单文件,找到其动作和信息,
采用隐式跳转即可实现。

3.1 打开浏览器界面
自己将Android
应用的源码安装在:D:\AndroidSource_GB\AndroidSource_GB 中,
打开
D:\AndroidSource_GB\AndroidSource_GB\packages\apps\Browser
目录,然后
打开AndroidManifest.xml清单文件,找到用于启动浏览器的intent-filter。
Tips:intent-filter有多个,我们选择一个适合我们即可。

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" />
    <data android:scheme="https" />
    <data android:scheme="about" />
    <data android:scheme="javascript" />
</intent-filter>

启动浏览器需要添加的意图过滤器

注意:为了方便演示我们直接修改本文档2.1 章节中创建的工程,在FirstActivity的
布局文件中添加一个按钮,点击该按钮打开一个浏览器。这里给出 FirstActivity
类核心方
法的代码清单:

//跳转到浏览器界面
public void skip2Browser(View view){
    //创建一个 Intent 对象
    Intent intent = new Intent();
    //设置 Action
    intent.setAction("android.intent.action.VIEW");
    //设置 category
    intent.addCategory("android.intent.category.BROWSABLE");
    //设置参数
    intent.setData(Uri.parse("http://www.itheima.com"));
    //启动 Activity
    startActivity(intent);
}

跳转到浏览器界面

运行上面代码,发现成功跳转到了浏览器界面,并打开了指定的网页。

3.2
打开短信发送界面
打开Android应用源码,找到
D:\AndroidSource_GB\AndroidSource_GB\packages\apps\Mms目录,打开
AndroidManifest.xml清单文件,找到intent-filter。

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.SENDTO" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="sms" />
    <data android:scheme="smsto" />
</intent-filter>

系统上层源码中发送短信的意图过滤器

在本文档2.1 章节中给FirstActivity布局文件添加一个按钮,并添加按钮事件。在该方法中实现核心业务逻辑。

//跳转到发送短信界面
public void skip2Mms(View view){
    //创建一个 Intent 对象
    Intent intent = new Intent();
    //设置 Action
    intent.setAction("android.intent.action.VIEW");
    //设置 category
    intent.addCategory("android.intent.category.BROWSABLE");
    //设置参数
    intent.setData(Uri.parse("sms:10086"));
    //设置短信内容
    intent.putExtra("sms_body", "301");
    //启动 Activity
    startActivity(intent);
}

跳转到系统的发送短信界面

时间: 2024-10-21 15:14:44

四大组件--Activity(一)的相关文章

Android四大组件--Activity详解

Android四大组件--Activity详解 分类: android android应用android开发 本文的主要内容包括1.activity的建立.配置和使用:2.activity的跳转和传值:3.startActivityForResult:4.activity的生命周期. 1.activity的建立.配置和使用 Activity是一个应用中的组件,它为用户提供一个可视的界面,方便用户操作,比如说拔打电话.照相.发邮件或者是浏览地图等.每个activity会提供一个可视的窗口,一般情况

Android基础之四大组件---Activity

Android基础之四大组件-Activity 1.什么是Activity 2.Activity生命周期 3.Activity生命周期演示 4.Activity之间的通信 5.Activity之加载模式 6.Activity的栈式管理 1.什么是Activity? Activity是用户接口程序,它是Android应用程序的基本功能单元,它的主要功能是提供界面.Activity是Android的核心类,该类的全名是android.app.Activity.Activity相当于C/S程序中的窗体

Android开发四大组件--Activity详解

Android开发四大组件--Activity详解 - Android开发教程 Android开发的四大组件在开发中应用中是必不可少的,下面就来详解下四大组件之一Activity,总结自网络.Activty的生命周期的也就是它所在进程的生命周期. 一个Activity的启动顺序: onCreate()——>onStart()——>onResume() 当另一个Activity启动时: 第一个Activity onPause()——>第二个Activity onCreate()——>

Android基础整理之四大组件Activity

最近准备系统的重新整理复习一下Android的各方面的知识,本着知识分享的原则,我就把梳理过程中一些东西给记录下来,权当一个学习笔记吧. 下面步入正题..... 什么是Activity Activity作为Android四大组件之一,也是其中最重要的一个组件.作为一个与用户交互的组件,我们可以把Activity比较成为windows系统上的一个文件夹窗口,是一个与用户交互的界面.再进一步说,当我们拿起Android打开拨号功能,显示出拨号盘的界面其实就是一个Activity:当然,可以更大范围的

Android四大组件——Activity

Activity作为Android四大组件之一,也是其中最重要的一个组件.作为一个与用户交互的组件,我们可以把Activity比较成为windows系统上的一个文件夹窗口,是一个与用户交互的界面.再进一步说,当我们拿起Android打开拨号功能,显示出拨号盘的界面其实就是一个Activity:当然,可以更大范围的说,手机屏幕上显示的任何界面都是一个个Activity. 官方对Activity的描述 Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作,

Android 四大组件(Activity、Service、BroadCastReceiver、ContentProvider)

转载于:http://blog.csdn.net/byxdaz/article/details/9708491 http://blog.csdn.net/q876266464/article/details/19641251 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,Broadcast Receiver广播接收器. 一.了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以

Android笔记(五十八)Android总结:四大组件——Activity篇

什么是Activity Activity是一种包含用户界面的组件,主要用于和用户进行交互,一个APP通常由多个Activity组成. 每个Activity都对应一个布局文件,通过setContentView()方法来载入布局文件.并且通过用户对布局文件中的组件所发出的事件来做出相应的反映. Activity的四种状态 1)激活状态,此时activity运行在屏幕前台 2)暂停状态,此时activity失去焦点,但是用户仍然可以看到(例如这个activity上遮盖了一个透明的或者非全屏的activ

Android开发学习笔记之四大组件---Activity的介绍,创建以及生命周期

最近重新温习关于android开发的基础知识,还是分享到博客里,一方面分享给有需要的同学,一方面方便自己后期查看 一.什么是Activity 通俗来讲,一屏的界面就是一个Activity,套用比较教科的话,在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应.Activity之间通过Intent进行通信,Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View

四大组件Activity启动

任务栈Task ,是一种用来放置Activity实例的容器,他是以栈的形式进行盛放,也就是所谓的先进后出,主要有2个基本操作:压栈和弹出,所以在其中只能根据压栈和弹出操作更改Activity的顺序.启动一个Application的时候,系统会为它默认创建一个对于的Task,用来放置根Activity. Android软件开发学习Activity组件启动模式方法 Activity启动模式 在安卓中,Activity的启动模式分为四种,分别是:标准模式,栈顶复用模式,栈内复用模式,单例模式. 1.s