一、为了创建一个新的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. hdu 2553 N皇后问题

    回溯. 一个主对角线,副对角线的技巧 //vis[0][i]表示第i列有没有皇后 vis[1][cur+i]表示副对角线 vis[2][cur-i+n]表示主对角线 #include <cstd ...

  2. DSP using MATLAB示例Example3.6

    代码: n = [-5:5]; x = (-0.9).^n; % x(n) = k = -200:200; w = (pi/100)*k; % [0,pi] axis divided into 101 ...

  3. 解决Myeclipse10 Building Workspace速度慢的问题

    解决方法如下: 选择项目,选择Project -> Properties -> Builders,取消JavaScript Validator,validation或者其它你认为没必要的选 ...

  4. [bzoj1068]压缩[区间动规]

    看了lujiaxin的blog,感觉自己好浪啊....好难过 刷题的时候不够投入,每种算法都是只写一两道就过去了,这样怎么可能进步嘛 不要总是抱怨时间太少了 都是自己不努力>_< 好啦 看 ...

  5. 仅在TabControl中的Tab中添加右键菜单

    若想实现仅在TabControl中的Tab中添加右键菜单,可在XAML中通过使用样式得到: <TabControl> <TabControl.ItemContainerStyle&g ...

  6. git冲突解决

    http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html http://hi.baidu.com/jqxw4444/item/f ...

  7. unity 解析xml

    using UnityEngine; using System.Collections; using System.IO; using System.Xml; public class xml : M ...

  8. OpenResty 平滑升级

    1.先去下载新版,当前最新版为“ngx_openresty-1.7.0.1” 2.开始升级 tar zxvf ngx_openresty-1.7.0.1.tar.gz cd ngx_openresty ...

  9. HDU 4722 Good Numbers(DP)

    题目链接 脑子有点乱,有的地方写错了,尚大婶鄙视了... 来个模版的. #include <iostream> #include <cstdio> #include <c ...

  10. URAL 1244. Gentlemen(DP)

    题目链接 这题不难啊...标记一下就行了.表示啥想法也没有. #include <cstring> #include <cstdio> #include <string& ...