android中一个activity实际上可以看做是一个屏幕,屏幕之间的切换实际上也就是也就是活动间的切换,更准确地说,应该是调用,

而在android中是通过intent完成这个动作的

通过apidemo中的一个例子来讲解(AndroidManifafest 和布局文件 为手敲 )

先是对于最根本的AndroidManifafest文件的编辑

-------------------------------------初学者了解-----------------------------------------------------------------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<!-- xmlns类似于C++中的名字域,下面这几句几乎均是默认,不会有太大变化-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.study.intent"
      android:versionCode="1"
      android:versionName="1.0">
    <!-- label是应用的名字,icon是应用的图标--> 
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <!--name指明是哪个活动 -->
        <activity android:name="Activity1" 
                  android:label="@string/app_name">
         <!--Intent对象是一个信息包。
            它包含了要接收此Intent的组件需要的信息
            (例如需要的动作和动作需要的信息)
            和 android 系统需要的信息(要处理此Intent的组件的类别和怎样启动它)
            action.MAIN将该Activity作为task的第一个Activity ,没有数据输入,也没有数据返回
            category.LAUNCHER可以让一个activity出现在launcher
            -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!--由于没有intent-filler,Activity2是不能直接启动的-->
        <activity  android:name="Activity2" > .
        </activity>
    </application>
</manifest>



--------------------------------------------apidemo中的java代码-------------------------------------------

作为launcher的activity1会在点击图标后启动,进而调用activity2

package com.study.intent;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Activity1 extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button btn = ( Button ) findViewById ( R.id.btn );
        btn.setOnClickListener (  new OnClickListener ()
        {
            public void onClick ( View v )
            {
                Intent intent = new Intent ();//建立intent
                <pre name="code" class="java">intent.setClass ( Activity1.this , Activity2.class  );//设置活动



startActivity ( intent ); finish ();//结束当前活动 } }); } }


只有setClass函数会比较陌生,其中第一个参数是上下文类型context,因此可以把当前的活动设置为当前活动的指针即可,activity是context的继承类,所以这样传参一定是合法的,后面要接受的是一个class类,把要转移到的activity传入函数第二个参数即可


————————————————————————————————————————————————————————————————————
activity2,大部分内容可以写在布局文件中

package com.study.intent;

import android.app.Activity;
import android.os.Bundle;

public class Activity2 extends Activity 
{
    public void onCreate ( Bundle b  )
    {
        super.onCreate ( b );
        setContentView ( R.layout.layout2 );
    }
}

activity1的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:id="@+id/leader"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/leader"
    />
<Button
    android:id="@+id/btn"
    android:layout_width="80sp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="@string/btn"
    />
</LinearLayout>



activity2的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_height="fill_parent"
     android:layout_width="fill_parent"
>
     <TextView 
            android:id="@+id/text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/text"
     />
</LinearLayout>