在第一篇文章中介绍了Activity的概念以及生命周期的流程,现在我们来看一下如何创建Activity。这里我们使用adt-bundle来建立Android Project。大家也可以使用Android Studio来建立工程。OK,开始吧
一、新建Android Application Project
打开新建界面选择Android>Android Application Project,点击Next,进入下一个界面之后如下图:
来说明下每个字段:Application Name:新建的应用名称
Project Name:对应的工程名称
Package Name:工程所在的包名
Minimum Required SDK:开发的应用所需求最低SDK版本
Target SDK:开发应用时的目标SDK
Compile With:开发时的编译SDK设置
Theme:主题预设
点击Next>Next>Finish,就建立好了一个Android工程了,目录如下:
src目录是我们最主要的工程文件,我们建立的类文件.java都存放在此。AndroidManifest.xml是配置组件的配置文件,当我们新建了Activity等组件时,需要在此注册。res是系统自动生成的用于管理资源的文件,里面的layout目录下是对应的activity的显示布局,可以在新建立的Android XML Files配置我们想要的布局效果。
二、创建Activity
先看下图:
第一次创建请设置好您的包名Package Name;
请输入类名Name;
如果您想要不同的访问控制权限,辣么您可以在Modifers里进行修改;
如果您想要创建主方法,请勾选public static void main(String[] args);
如果您创建的是Activity,请设置您的SuperClass为android.app.Activity!!!创建完成点击Finish
这样我们就创建了一个Activity
三、注册Activity
所有新建的Activity都要进行注册,打开AndroidManifest.xml,点击Application标签,点击Add按钮,选择Activity,添加完毕之后在右侧有个Name对话框,点击Browse按钮,它会查找项目里未注册的Activity项(之所以会查找Activity是因为之前添加的是Activity,如果添加Service则会查找Service),点击我们的Activity,此时我们的Activity就注册好了。Ctrl+S保存之后我们可以在AndroidMaifest.xml标签里看见我们新添加的Activity xml代码:
当然了,注册Activity也可以直接用代码的方式,我们可以直接在AndroidManifest.xml中的<application></application>标签里添加<activity>标签并设置android:name属性即可。
四、布局Activity
创建并注册好Activity之后,我们还需要对其进行布局,因为我们总不希望自己看到的界面啥都木有吧,所以我们要进行布局,Android的布局方式是使用xml语言。
打开res文件找到layout文件目录,在其下新建一个Android XML File,完成之后看到如下界面:
它有2个布局方法,图形可视化布局以及xml代码编辑,我们可以在两个标签之间切换来查看我们的布局效果。在图形化编辑界面的左侧是一堆控件,我们可以根据布局需要使用它们,当然了,专业人士都是直接敲xml的,那样效率更高。反正我不是专业 的。
五、显示Activity
创建,注册,布局设置都完成了之后,我们可以看看我们的Activity效果了。打开我们的Activity类,这里我们要重载OnCreate()方法。还记得Activity的生命周期么,第一个就是OnCreate。我们在Oncreate方法里进行显示:
setContentView(R.layout.activity_main)是显示我们的布局,R代表res文件,layout是我们的布局目录,activity_main就是我们所要显示的布局。
按照上述设置好之后就可以在启动Activity之后加载我们的布局了
六、关闭Activity
想要关闭一个activity只需要调用其自身的finish()方法就可以啦
七、Activity补遗
(1)、锁定Activity运行时的屏幕方向:
<activity android:name=".EX01"
android:label="@string/app_name"
android:screenOrientation="portrait">// 竖屏 , 值为 landscape 时为横屏
</activity>
(2)、Activity设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 去除标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
(3)、在Acitivity的Title标题栏中加载进度条
为了获取更好的用户体验,一般可以在Activity的加载过程中设置一个进度条来提示用户不要着急,所以我们可以如下设置:
// 不明确进度条
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
setProgressBarIndeterminateVisibility(true);
// 明确进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
setProgress(5000);
Activity的相关内容简单介绍到着,下一篇我们将介绍与Activity密切相关的Intent内容。