2010/01/12

Android Activity 利用 Intent 物件來轉換到另一個 Activity

在 Android 中,

要從一個 Activity 中呼叫另一個 Activity,

就必須使用 Intent 物件,

請參考以下範例 (這裡就不列出 Layout XML 檔案內容了) :
 來源 Activity 程式碼
public class helloWorld extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 設定 Layout 為 main.xml
setContentView( R.layout.main );

// 按鈕物件
Button b1 = (Button)findViewById( R.id.button1 );

// Button 的 OnClick Trigger
b1.setOnClickListener( new OnClickListener(){
public void onClick(View v) {

// 指定要呼叫的 Activity Class
Intent newAct = new Intent();
newAct.setClass( helloWorld.this, helloWorld2.class );

// 呼叫新的 Activity Class
startActivity( newAct );

// 結束原先的 Activity Class
helloWorld.this.finish();
}
});
}
}

 目的 Activity 程式碼
public class helloWorld2 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 設定 Layout 為 main2.xml
setContentView( R.layout.main2 );

// 按鈕物件
Button b1 = (Button)findViewById( R.id.button1 );

// Button 的 OnClick Trigger
b1.setOnClickListener( new OnClickListener(){
public void onClick(View v) {

// 指定要呼叫的 Activity Class
Intent newAct = new Intent();
newAct.setClass( helloWorld2.this, helloWorld.class );

// 呼叫新的 Activity Class
startActivity( newAct );

// 結束原先的 Activity Class
helloWorld2.this.finish();
}
});
}
}

AndroidManifest.xml 要加入第二個 Activity, 不然呼叫時會有問題 :


範例結果 :