活动(Actiity)是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用中可以包含零个或多个活动。

所有的自己写Activity都继承于Activity类。项目中的任何活动都应该改重写Activity的onCreate()方法。比如下面的FirstActivity活动:

public class FirstActivity extends Activity{
  @Override
  protected void onCreate(Bundle savedInstanceState){
      Super.onCreate(savedInstanceState);
  }
}

上面的onCreate()方法很简单,就是调用了父类的onCreate()方法,后面我们需要在里面加入很多自己的逻辑。

当我们写成一个活动(Activity)时,Android程序设计讲究逻辑和视图分离,活动最好都对应一个布局,布局就是用来显示界面内容的。

在这里可以新建一个布局文件并命名为first_layout。我们默认的布局的XML文件应该如下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
</LinearLayout>

如果需要在布局文件中加入一个按钮(Button),则在XML文件中编辑,加入的Button布局代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <!--添加一个Button按钮  -->
    <Button
        android:id="@+id/button_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_button_1"/>

</LinearLayout>

其中

android:id是给当前的元素定义一个唯一的标识符,之后在代码中可以对这个元素进行操作。(在XML中,引用一个id,就使用@id/id_name;

如果需要在XML中定义一个id,需要使用@+id/id_name)

android:layout_width指定了当前元素的宽度,这里使用match_parent表示让当前元素和父元素一样宽。

android:layout_height指定了当前元素的高度,这里使用wrap_content表示让当前元素的高度刚好包含里面的内容。

android:text指定了元素中显示的文字内容。(@string/app_button_1表示text引用是string中的app_button_1)。

这样一个简单的布局文件就编写完成了。接下来就是在活动中加载这个布局文件,重新回到FirstActivity,在onCreate()方法中加入如下代码:

public class FirstActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        //在活动中加载布局,使用setContentView()方法
        setContentView(R.layout.first_layout);
    }

这里调用setContentView()方法来给当前的活动加载一个布局,一般都会传入一个布局文件的id。调用R.layout.first_layout就可以得到first_layout.xml布局的id,然后把这个值传入setContentView()方法即可(注意:代码中使用的R文件是自己所建包下的R文件,不要导入android包下的R文件)。

我们的布局文件写完了,也在活动(Activity)中加载了,但是还没有完成。所有的活动(Activity)都要在AndroidTestManifest.xml中进行注册才能生效。

下面的代码就是在AndroidTestManifest.xml中注册我们所写的活动(Activity):

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.gui.activitytest"
     android:versionCode="1"
     android:versionName="1.0" >

     <uses-sdk
         android:minSdkVersion="15"
         android:targetSdkVersion="20" />

     <application
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >

         <activity
             android:name=".FirstActivity"
             android:label="this is Firstactivity" >

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

 </manifest>

其中

android:name 指定具体注册哪一个活动。

android:lable指定活动中标题栏的内容(给主活动指定的lable不仅会成为标题栏的内容还会成为启动器(launcher)中应用程序显示的名称)。

在<activity>标签中加入了<intent-filter>标签,加入

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

这两句声明,会让FirstActivity作为程序的主活动,即打开应用图标首先打开的就是这个活动。

编写完上面的内容,我们就可以在模拟器中运行程序了。

Android学习笔记(一)的更多相关文章

  1. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  2. Android学习笔记进阶之在图片上涂鸦(能清屏)

    Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

  3. android学习笔记36——使用原始XML文件

    XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

  4. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  5. udacity android 学习笔记: lesson 4 part b

    udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  6. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  7. Android学习笔记之Activity详解

    1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...

  8. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  9. 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...

  10. 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...

随机推荐

  1. javascript new

    1. 仅function可以使用new 2. function使用new时,会拷贝function中this的内容给新对象,并将function的prototype指向新对象(如果该function没 ...

  2. Sprint.Net 笔记

    有生以来写的第一份博客, 还真不会写, 请高手们指导指导. 1.引入 Spring.Core.dll 和 Common.Logging.dll 两个文 2. 在UI层的Web.conf 的 <C ...

  3. JavaScript的sleep延时函数

    JavaScript没有像Java的sleep延时函数,所以记录JavaScript的sleep延时函数 function sleep(milliSeconds) { var startTime = ...

  4. 10个优秀的JavaScript Web UI库/框架推荐

    在进行Web开发时,并非所有的库都适合你的项目,但你仍需要收藏一些Web UI设计相关的库或框架,以在你需要的时候,加快你的开发效率. 本文为你带来10款非常优秀的基于JavaScript的Web U ...

  5. Windows“神器”收集贴

    本文本来是刚开始发现autohotkey时比较兴奋,收集了几个autohotkey的介绍页面.最近又发现了win下多桌面的神器virtuawin,心想干脆在把本帖改成专门收集win下神器的帖子吧.如果 ...

  6. git中ssh配置方法

    前提:必须先安装好Git for windows(即msysGit)和TortoiseGit 一,检查本地是否已存在ssh $ cd ~/.ssh $ ls 如果存在id_rsa.pub或者id_ds ...

  7. iOS开发UI篇—Quartz2D简单使用(三)

    iOS开发UI篇—Quartz2D简单使用(三) 一.通过slider控制圆的缩放 1.实现过程 新建一个项目,新建一个继承自UIview的类,并和storyboard中自定义的view进行关联. 界 ...

  8. PowerMock遇到的问题——5

    在做单元测试时,有时在一个方法中会调用这个类的其他私有方法,那么如何指定这些方法的返回值呢? 解决方法:用 createPartialMock 具体用法如下: TestClass test=Power ...

  9. ionic本质

    ionic本质一开发工具,ionic项目目录里在大堆东西,一堆插件(plugins),还有一堆npm包(node_modules),其实都是骗人的-( ̄▽ ̄-)~ 什么nodejs,npm只是为了解决 ...

  10. C语言基础--for循环

    for循环格式: for (初始化表达式;条件表达式;循环后增量表达式) { 语句; ... } 条件表达式: 和while, dowhile一样, 只有条件满足才会执行循环体 初始化表达式: 在整个 ...