要從一個 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, 不然呼叫時會有問題 :
範例結果 :