Android应用通常是由多个Activity组成,这些Activity用于显示不同的页面,它们之间是相互独立的,但是经常需要在不同的界面之间传递数据,例如第一个页面注册信息后,将信息显示到第二个页面上面。

案例内容:
创建第一个Activity,用于输入注册信息,将信息传递给第二个Activity。
创建第二个Activity,接收第一个Activity传递的信息,将信息显示在页面上面。

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/cz_bj"
    tools:context=".MainActivity" >
    <Button
        android:id="@+id/btn_regist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="40dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:background="@drawable/cz_shade_button"
        android:onClick="register"
        android:text="注册新用户"
        android:textColor="#ffffff" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/btn_regist"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:orientation="vertical" >
        <RelativeLayout
            android:id="@+id/rl_user"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/cz_shade_ll" >
            <EditText
                android:id="@+id/edtTxt_number"
                style="@style/edtTxtStyle"
                android:layout_centerVertical="true"
                android:layout_toRightOf="@+id/tv_number"
                android:ems="10"
                android:inputType="number" />
            <TextView
                android:id="@+id/tv_number"
                style="@style/tvStyle"
                android:layout_centerVertical="true"
                android:text="手机号码:" />
        </RelativeLayout>
        <RelativeLayout
            android:id="@+id/rl_nickName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:background="@drawable/cz_shade_ll" >
            <EditText
                android:id="@+id/edtTxt_nickName"
                style="@style/edtTxtStyle"
                android:layout_centerVertical="true"
                android:layout_toRightOf="@+id/tv_number"
                android:ems="10" />
            <TextView
                android:id="@+id/tv_number"
                style="@style/tvStyle"
                android:text="昵称         :"
                android:textColor="#000000" />
        </RelativeLayout>
    </LinearLayout>
</RelativeLayout>

activity_main.xml用到的样式文件styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>

    <style name="AppTheme" parent="AppBaseTheme">
    </style>

    <style name="tvStyle" parent="android:Widget.Holo.Light.TextView">
        <item name="android:layout_marginBottom">20dp</item>
        <item name="android:layout_marginLeft">5dp</item>
        <item name="android:layout_marginRight">5dp</item>
        <item name="android:layout_marginTop">20dp</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_centerVertical">true</item>
        <item name="android:textSize">16dp</item>
    </style>

    <style name="edtTxtStyle" parent="android:Widget.Holo.Light.EditText">
        <item name="android:background">@null</item>
        <item name="android:layout_marginRight">5dp</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
</resources>

MainActivity.java

package com.example.asus.bisinesscard;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    private EditText edtTxt_number;
    private EditText edtTxt_nickName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();//初始化本类私有数据
    }

    private void initView(){
        edtTxt_number =(EditText)findViewById(R.id.edtTxt_number);
        edtTxt_nickName =(EditText)findViewById(R.id.edtTxt_nickName);
    }

    //"注册新用户",触发register事件
    public void register(View view){
        //获取用户填写信息,并进行格式转化

        /*我们经常见到的 trim() 经常和toString()合用,
        作用是取出空格,因为有时候用户输入信息的时候,
        可能会过多的填写空格,或者有些时候就使用空格做为数据了,
        结果造成程序出错~为了使我们的数据紧凑并且不会出现空格错误
        我们就需要使用到trim()函数了~
        例子如下:
        b=EditText02.getText().toString();
        if(!"".equals(EditText02.getText().toString().trim())) //判断EditText02 是否为空
         b="职业:"+b+'\n';
        ps:Trim() 函数的功能是去掉首尾空格,
        在编程中发现使用if(EditText02.getText().toString()!="")不能正确判断是否为空,
        调试后发现是莫名空格的原因,使用trim()函数后解决。*/
        String number =edtTxt_number.getText().toString().trim();
        String nickName =edtTxt_nickName.getText().toString().trim();

        if(TextUtils.isEmpty(number)||TextUtils.isEmpty(nickName)) {
           /*
            Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,
            Toast是没有焦点的,而且Toast显示的时间有限,
            过一定的时间就会自动消失。而且Toast主要用于向用户显示提示消息
            http://android.tgbus.com/Android/tutorial/201103/346236.shtml
            */
            Toast.makeText(this, "选项不能为空",0).show();
            return;
        }
        Intent intent=new Intent(this,SecondActivity.class);//显示意图
        //意图如何传递数据,信封邮包
        intent.putExtra("number",number);
        intent.putExtra("nickName",nickName);
        //启动Activity
        startActivity(intent);
    }
}

activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.asus.bisinesscard.SecondActivity">
    <ImageView
        android:id="@+id/iv_head"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="30dp"
        android:src="@drawable/cz_head"/>
    <TextView
        android:id="@+id/tv_nickname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/iv_head"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/iv_head"
        android:text="昵称"
        android:textSize="18dp"/>
    <TextView
            android:id="@+id/tv_numberShow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/iv_head"
            android:layout_alignLeft="@+id/tv_nickname"
            android:text="手机:"
            android:textSize="18dp" />
        <TextView
            android:id="@+id/tv_hobby"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/iv_head"
            android:layout_marginLeft="21dp"
            android:layout_marginTop="16dp"
            android:text="爱好    :约会"
            android:textSize="20dp" />
        <TextView
            android:id="@+id/tv_gender"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/tv_hobby"
            android:layout_below="@+id/tv_hobby"
            android:layout_marginTop="16dp"
            android:text="性别    :暂定"
            android:textSize="20dp" />
        <TextView
            android:id="@+id/tv_introduction"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/tv_gender"
            android:layout_below="@+id/tv_gender"
            android:layout_marginBottom="30dp"
            android:layout_marginTop="16dp"
           android:text="自我介绍:"
           android:textSize="20dp" />
</RelativeLayout>

SecondActivity.java

package com.example.asus.bisinesscard;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class SecondActivity extends Activity {
    private TextView tv_number, tv_nickName;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        initView();//初始化数据
        Intent intent = getIntent();//通过getIntent()方法获得对方传过来的intent对象
        //取出数据
        String number = intent.getStringExtra("number");
        String nickName = intent.getStringExtra("nickName");
        //设置本界面显示内容
        tv_number.setText("电话号码:" + number);
        tv_nickName.setText("昵称:" + nickName + "(火星)");
    }
    private void initView() {
        tv_number = (TextView) findViewById(R.id.tv_numberShow);
        tv_nickName = (TextView) findViewById(R.id.tv_nickname);
    }
}
Activity必须在清单文件中注册,注册节点为<activity>。
Activity之间的跳转和传输数据使用Intent。