之前我们简单说过,Activity实际上是一个窗体,用来存放我们的程序外观。

我们先来创建一个空的Activity,不加载任何layout。要做的是,定义自己的类,继承android的Activity类。

然后覆盖父类的onCreate()方法。覆盖后必须先调用super.onCreate方法,这样才能初始化必要的组件,这是必须的。

不信你可以注释掉super.onCreate()方法试试

 package com.aidevelops.activitys;

 import android.app.Activity;
import android.os.Bundle; public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
}

这样,一个什么也没有的Activity便创建好了。
当然这个Activity也没有什么用处。

下一步我们让它加载一个界面,只需使用setContentView()方法

 package com.aidevelops.activitys;

 import android.app.Activity;
import android.os.Bundle; public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

这样,一个简单的显示程序首页的程序也就设置好了。

为什么要覆盖onCreate方法,我们先不说,现在只要记住,这个方法必须有

就这么简单吗?是的,但是,还没完,接下来,我们还要在AndroidManifest.xml文件中为这个Activity注册。

没有注册的Activity不能启动。

下面是AndroidManifest中部分代码:

 <activity
android:name="com.aidevelops.activitys.MainActivity"
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的最基本结构。

我们看一下从官网截的图:

官方已经表明:程序的主Activity(可以理解为入口)必须在manifest文件中定义一个包括action值为MAIN,

category值为LAUNCHER的intent-filter标签。

那么这两个标签的意思是什么呢,我们继续看图,用事实说话

先看action标签:

ACTION_MAIN定义在Intent类中,和它等价的常量值就是android.intent.action.MAIN

 它之所以能成为首页(入口)就是这个值决定的。

 Start as a main entry point就是作为一个入口点启动的意思

再看category

CATEGORY_LAUNCHER同样是在Intent类里定义,和它等价的就是这个android.intent.category.LAUNCHER值。

设置了这个值之后,程序的图标就会在我们的应用程序列表里显示,这样我们就可以点击这个图标启动程序。

当然,这些动作IDE已经为我们做好了,但是,我们也应该了解其原理

这样,一个标准的可以启动的Activity就已经建立好了。你们说简单吗

android开发------初识Activity的更多相关文章

  1. Android开发之---Activity启动模式

    在Android开发中,启动一个新的activity我们可以使用startActivity或startActivityForResult,Android系统使用栈的方式来管理一个APP的页面显示与保存 ...

  2. Android开发之---Activity生命周期

    Android开发中,有四大组件:Activity.Service.Content Provider.Broadcast Receiver,可以说,activity的使用是最频繁的了,这里来梳理一下与 ...

  3. eclipse Android 开发基础 Activity 窗体 界面

    eclipse Android 开发基础 新建工程 新建布局layout,new Android Activity就相当于窗体Form. 新建Activity自动生成src下同名的java代码. pu ...

  4. Android开发在Activity外申请权限调用相机打开相册

    问题描述: 最近在项目中遇到一个需要调用相册和打开相机的需求,但是,在Android 6.0以后,调用相册属于危险权限,需要开发者动态获取,这就意味着我们申请权限是与Activity绑定的,但如果一个 ...

  5. 详解Android开发中Activity的四种launchMode

    Activity栈主要用于管理Activity的切换.当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载. Activity一共有以下四种launchMod ...

  6. [android开发篇]activity组件篇

    https://developer.android.com/guide/components/activities.html Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打 ...

  7. 第01讲 Android开发系列---Activity

    一.  Android系统版本及详细信息 最新数据  https://developer.android.com/about/dashboards/ 二.  Android项目初探 1.    使用a ...

  8. Android开发学习—— activity

    activity生命周期 #Activity生命周期###void onCreate()* Activity已经被创建完毕###void onStart()* Activity已经显示在屏幕,但没有得 ...

  9. Android开发中activity切换动画的实现

    (1)我们在MainAcitvity中定义两个textview,用于点击触发切换Activity事件,下面是布局文件代码. <LinearLayout android:layout_width= ...

随机推荐

  1. python抓取网页中图片并保存到本地

    #-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file ...

  2. ResultSet rs = stmt.executeQuery(sql); 返回值问题判断

      JAVA  ResultSet rs = stmt.executeQuery(sql);  //查询返回的结果集不管是否查到,rs都不是null,那么问题是怎么判断查找不到来执行一个提示“账号或者 ...

  3. java 判断两个时间相差的天数

    1.实现目标 输入:两个日期 输出:两个日期相差的天数 2.代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的   ...

  4. Linux vim(4)

    vim相对于vi做了很多的提升: -VIM支持多集撤销 -VIM可以跨平台运行 —VIM支持语法高亮 -VIM支持图形界面 vim三大模式: command mode vi进入时的默认模式 esc进入 ...

  5. 突然发现这周有点忙。。着玩-PHP进阶

    hi 周二才,不过我突然意识到这周有点忙着玩的感觉,还是很期待的——今天下午去市里,晚上回来看电影,明晚聚餐吃火锅,后天下午拍短片,晚上可能要打球,周五,嗯,就到周五了.虽然这样下去连怎么写(bian ...

  6. Object-C中ARC forbids explicit message send of ' ' 错误

    OC中ARC forbids explicit message send of '...'错误 转自CSDN hahahacff 有所整理 ARC forbids explicit message s ...

  7. 2016"百度之星" - 初赛(Astar Round2B)

    Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有n个数,每个数都是独一无二的,求出每个数在 ...

  8. python中if __name__ == "__main__":用法解析

    __name__: __name__作为模块的内置属性,简单点说呢,就是.py文件的调用方式. __main__: 如果__name__等于"__main__"就表示是直接执行. ...

  9. 微软前 CEO 史蒂姆·鲍尔默:除了我们没人拼得过苹果硬件

    微软通过 Surface Book 正式宣布进军笔记本电脑行业的同时,宣传语表示 Surface Book“比苹果的 MacBook Pro 还要快两倍”. 业界对 Surface Book 的好评连 ...

  10. 修复垂直滑动RecyclerView嵌套水平滑动RecyclerView水平滑动不灵敏问题

    在 Android 应用中,大部分情况下都会使用一个垂直滚动的 View 来显示内容(比如 ListView.RecyclerView 等).但是有时候你还希望垂直滚动的View 里面的内容可以水平滚 ...