android开发------初识Activity
之前我们简单说过,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的更多相关文章
- Android开发之---Activity启动模式
在Android开发中,启动一个新的activity我们可以使用startActivity或startActivityForResult,Android系统使用栈的方式来管理一个APP的页面显示与保存 ...
- Android开发之---Activity生命周期
Android开发中,有四大组件:Activity.Service.Content Provider.Broadcast Receiver,可以说,activity的使用是最频繁的了,这里来梳理一下与 ...
- eclipse Android 开发基础 Activity 窗体 界面
eclipse Android 开发基础 新建工程 新建布局layout,new Android Activity就相当于窗体Form. 新建Activity自动生成src下同名的java代码. pu ...
- Android开发在Activity外申请权限调用相机打开相册
问题描述: 最近在项目中遇到一个需要调用相册和打开相机的需求,但是,在Android 6.0以后,调用相册属于危险权限,需要开发者动态获取,这就意味着我们申请权限是与Activity绑定的,但如果一个 ...
- 详解Android开发中Activity的四种launchMode
Activity栈主要用于管理Activity的切换.当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载. Activity一共有以下四种launchMod ...
- [android开发篇]activity组件篇
https://developer.android.com/guide/components/activities.html Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打 ...
- 第01讲 Android开发系列---Activity
一. Android系统版本及详细信息 最新数据 https://developer.android.com/about/dashboards/ 二. Android项目初探 1. 使用a ...
- Android开发学习—— activity
activity生命周期 #Activity生命周期###void onCreate()* Activity已经被创建完毕###void onStart()* Activity已经显示在屏幕,但没有得 ...
- Android开发中activity切换动画的实现
(1)我们在MainAcitvity中定义两个textview,用于点击触发切换Activity事件,下面是布局文件代码. <LinearLayout android:layout_width= ...
随机推荐
- centos6.5编译安装lamp开发环境
一.系统以及软件的准备 系统及编译安装包的下载地址:http://pan.baidu.com/s/1jIjqinc 密码:ghc2 说明:由于centos6.5是分卷压缩的,且压缩为三个压缩包,所 ...
- ELF Format 笔记(二)—— ELF Header
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 以 32 位的 ELF header 数据结构为例: #define EI_NIDENT 16 typede ...
- ELF Format 笔记(九)—— Elf32_Sym 结构的 st_value 和 st_shndx 成员
ilocker:关注 Android 安全(新手) QQ: 2597294287 前面的笔记中提到过 Elf32_Sym 结构,本篇笔记再写一下其中的 st_value 和 st_shndx 成员. ...
- System V IPC(1)-消息队列
一.概述 System V三种IPC:消息队列,信号量,共享内存.这三种IPC最先出现在AT&am ...
- KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- 文件上传&文件下载
一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...
- C#复习(学生信息输入)
在控制台程序中使用结构体.集合,完成下列要求项目要求:一.连续输入5个学生的信息,每个学生都有以下4个内容:1.序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2 ...
- Beanstalk消息队列的实现
在工作中要用到消息队列,但是主管为了追求开发速度,让用了一个简易的类 beanstalk 下面来说明这个东西 参考博客:https://my.oschina.net/u/698121/blog/15 ...
- 向tiny6410中移植中移植linux-4.5.1内核(最新)
下载linux-4.5.1.tar.gz 解压在任意目录下.我解压在/home/tiny6410/ # tar xvzf linux-4.5.1.tar.gz # cd linux-4.5.1/ 修改 ...
- wk_04
函数 函数是对程序逻辑进行结构化或过程化的一直编程方法.能将整块代码巧妙的隔离成易于管理的小块,把重复代码放到函数中而不是进行大量的拷贝--这样既能节省空间,也有助于保持一致性,因为你只需要改变单个的 ...