一、为了创建一个新的Activity,你需要继承Activity类,定义UI,实现功能。新的Activity的最基本的框架代码如下所示:

package com.paad.myapplication;

import android.app.Activity;

import android.os.Bundle;

public class MyActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

}

}

基本的Activity类代表一个空的屏幕,它没有什么大用,所以,首要的事情就是你用Views和layouts来填充UI。

Activity的UI都是由Views来创建的。Views是UI控件,显示数据和提供用户交互。Android提供了一些layout类,称作View Groups,它可以容纳多个View来帮助你设计复杂的UI。

在第4章中会详细描述View和View Groups,并且讲解了哪些可用,如何用以及怎样创建自定义的Views和layouts。

为Activity指定UI,请在Activity的onCreate方法中调用setContentView方法。

在这个代码片段里,使用了MyView的简单实例来作为Activity的UI:

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

MyView myView = new MyView(this);

setContentView(myView);

}

多数情况下,你都想使用较为复杂的UI设计。你可以在代码里使用View Groups来创建布局,或者你可以利用标准Android的便利传递一个外部已经定义的layout的资源ID,如下面的代码片段所示:


@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);

}

为了能在应用程序中使用一个Activity,你需要在manifest中注册它。在application节点添加一个新的activity标签;activity里包含label、icon、permissions和themes等元数据。没有相应的activity标签的Activity不能被启动。

接下来的XML片段显示了如何为我刚创建的MyActivity类添加一个节点:

<activity android:label=”@string/app_name”

android:name=”.MyActivity”>

<intent-filter>

<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

在activity标签里,你可以增加intent-filter节点来指明你的Activity监听和响应哪种意图。每个Intent Filter可以定义一个或多个action和categories。Intent和Intent Filter会在第5章详细描述,但是它对一个作为主要启动程序的Activity没有什么价值。它必须包含一个Intent Filter来监听MAIN动作和LAUNCHER种类,如下面高亮度的代码片段所示:

<activity android:label=”@string/app_name”

android:name=”.MyActivity”>

<intent-filter>

<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

二、多个Activity 之间的关系

多个Activity之间通过Intent来传递信息

Intent 的基本作用

一个 Intent 对象包含了一组信息

(1) Component name 指定要启动啊一个 Activity

(2) Action 指定的Activity 要做什么

(3) Data 一个Activity 向另一个Activity 中传递怎样的数据

(4) Extras 接收者Activity 可以从 Intent 中取出发送方 Activity 的键值对

(5) Categories

(6) Flags

Intent 可以用于两个Activity 之间传递信息,这两个Activity 不一定是一个应用程序的两个界面,也可是不同的两个应用程序的界面。主要是一些系统调用会比较常用这种方式去调用。

下面来看一个实例

Activity_02.java


  1. package csdn.Activity2;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.net.Uri;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.Button;
  9. public class Activity_02 extends Activity {
  10. /** Called when the activity is first created. */
  11. private Button myButton = null;
  12. @Override
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. myButton = (Button) findViewById(R.id.myButton);
  17. myButton.setOnClickListener(new MyButtonListener());
  18. }
  19. class MyButtonListener implements OnClickListener {
  20. @Override
  21. public void onClick(View v) {
  22. // TODO Auto-generated method stub
  23. // 生成一个Intent对象
  24. Intent intent = new Intent();
  25. intent.putExtra("testIntent", "123");
  26. intent.setClass(Activity_02.this, OthersActivity.class);
  27. Activity_02.this.startActivity(intent);
  28. }
  29. }
  30. }
 

OtherActivity.java 文件

//------------------------------------------------OtherActivity.java------------------------------------
package csdn.Activity2; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView; public class OthersActivity extends Activity {
private TextView myTextView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.others);
Intent intent = getIntent();
String value = intent.getStringExtra("testIntent"); myTextView = (TextView)findViewById(R.id.myTextView);
//myTextView.setText(R.string.other);
myTextView.setText(value);
} }

Android课程---Activity的创建的更多相关文章

  1. Android课程---Activity中保存和恢复用户状态

    onSaveInstanceState 保存 在暂停之后和保存之前调用 onRestoreInstanceState 恢复 再启动之后和显示之前调用 package com.example.chens ...

  2. Android课程---Activity 的生命周期

    activity类处于android.app包中,继承体系如下: 1.java.lang.Object 2.android.content.Context 3.android.app.Applicat ...

  3. Android开发--Activity的创建

    1.Activity概述 Activity是android四大基本组件之一.每一个activity文件对应一个界面,一个程序由多个activity组成. 2.Android工作目录

  4. android之Activity的创建与关闭

    Activity的启动和关闭 1.启动activity activity的启动分为两种,一种为入口activity,另一种为其他activity 在AndroidManifests进行配置,入口act ...

  5. Android基础Activity篇——创建一个活动(Activity)

    1.创建活动 首先用AS创建一个add no activity项目名使用ActivityTest,包名为默认的com.example.activitytest 2.右击app.java.com.exa ...

  6. Android课程---Activity 带返回值的跳转

    Activity2.java package com.hanqi.test4; import android.content.Intent; import android.os.Bundle; imp ...

  7. Android课程---Activity的跳转与传值(转自网上)

    Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据.   Intent是Android一个很重要的类.Intent直译是“意图”,什么是意图呢?比如你想从这个 ...

  8. Android开发之Activity的创建跳转及传值

    在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider).今天所介 ...

  9. Android提升篇系列:Activity recreate(Activity 重新创建/自我恢复)机制(一)

    注:本文中的recreate是指当内存不足时,Activity被回收,但再次来到此Activity时,系统重新恢复的过程.例如:当Activity A到Activity B时,如果内存不足,A被回收, ...

随机推荐

  1. hdu1160 LIS变形

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1160 题意:两个子序列 一个是升序,一个是降序,求最长的子序列是多长,并输出路径.(答案不 ...

  2. express-15 与生产相关的问题

    执行环境 Express支持执行环境的概念,它是一种在生产.开发或测试模式中运行应用程序的方法.实际上你可以按自己的想法创建很多种不同的环境. 要记住,开发.生产和测试是"标准"环 ...

  3. Spring Collections XML 配置

    List <property name="lists"> <list> <value>1</value> <ref bean= ...

  4. Codeforces Round #336 (Div. 2)

    水 A - Saitama Destroys Hotel 简单的模拟,小贪心.其实只要求max (ans, t + f); #include <bits/stdc++.h> using n ...

  5. HBase Shell 常见操作

    1.一般操作 status 查看状态 version 查看HBase版本 2.DDL操作 create 'member','member_id','address','info' 创建了一个membe ...

  6. SIFT特征提取分析

    SIFT特征提取分析 sift 关键点,关键点检测 读'D. G. Lowe. Distinctive Image Features from Scale-Invariant Keypoints[J] ...

  7. Leetcode Integer to Roman

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  8. 【JAVA】Quartz 任务调度和异步执行器

    Quartz基础结构         Quartz对任务调度的领域问题进行了高度抽象,提出了调度器(Scheduler).任务(Job)和触发器(Trigger)这3个核心概念,并在Trigger触发 ...

  9. 【bzoj1455】罗马游戏 可并堆

    2016-05-31  10:04:41 可并堆的裸题. 左偏树(小根堆为例 性质 1.满足堆的性质,每个节点权值小于左右儿子权值 2.每个节点有dis值,表示子树最浅的叶子深度加1 3.左子树dis ...

  10. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...