1、使用Intent可以很友善地在不同的Activity間傳遞資料,這個也是官方推薦的方式,但是也有一定的局限性,就是Intent無法傳遞不能序列化的對象,然而這個問題可以用靜态變量來解決~
2、下面來具體舉個例子,建立一個Android工程,如下圖:

3、在布局檔案(“res/layout”)中添加按鈕“Button”,代碼如下:
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="使用靜态變量傳遞資料" />
4、在目前目錄下再建一個布局檔案“other.xml”,在其中添加一個“TextView”标簽,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/msg"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TextView>
</LinearLayout>
5、右擊“src”下的包,建立類“OtherActivity”并使其繼承“Activity”,在這個類中添加“onCreate”方法,并在其中添加成員“textview”、“name”、“age”,最後将其值設定給“textview”,代碼如下:
package com.android.myintent;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class OtherActivity extends Activity {
private TextView textview; // 添加一個靜态變量
// 欲傳遞資料,添加一個public屬性的靜态變量
public static String name;
public static int age;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);// 加載布局檔案
textview = (TextView) this.findViewById(R.id.msg);// 查找并加載
textview.setText("-name-->>" + name + "\n" + "-age-->>" + age);
}
public OtherActivity() {
// TODO Auto-generated constructor stub
}
}
6、在“Main.java”裡添加一個“Button”類型成員,設定點選事件,并建立意圖為OtherActivity中的靜态變量指派,代碼如下:
package com.android.myintent;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class Main extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 聲明一個意圖
Intent intent = new Intent();// 可以構造一個空意圖,在下面傳遞類
intent.setClass(Main.this, OtherActivity.class);
OtherActivity.age = 23;
OtherActivity.name = "Jack";
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
7、在“AndroidManifest.xml”中添加一個“activity.xml”設定,“name”為“.OtherActivity”,使系統能找到該類,代碼:
<activity android:name=".OtherActivity" >
</activity>
8、運作程式,結果截圖如下:
Ps:My second Android Application~