启动Activity的两种方式startActivity和startActivityForResult(一)
啟動Activity有兩種方式:
1,startActivity(Intent intent);啟動其他Activity
2,startActivityForResult(Intent intent,int requestCode):以指定指定的請求碼(requestCode)啟動Activity,并且程序將會等到新啟動Activity的結果(通過重寫onActivityResult()方法來獲取)
啟動Activity是可指定一個requestCode參數,該參數代表了啟動Activity的請求碼。這個請求碼的值由開發者自己設置,其實就是一個int整數值,只是用于表示請求來源
關閉Activity的兩種方法:
1,finish():結束當前Activity;
2,finishActivity(intrequestCode):結束以startActivityForResult(Intent intent,int requestCode)方法啟動的Activity。
startActivity和startActivityForResult的區別:
startActivity在啟動其他Activity之后是不會被回調回來的,相當于啟動者和被啟動者在啟動完畢之后是沒有關系的
startActivityForResult在啟動了其他Activity之后是由回調的,也就是說啟動者與被啟動者在啟動完畢之后依然是有關系的
第一種方式比較直接,通過A的界面組件(比如按鈕)可以啟動第二個ActivityB,但是A和B之間不會傳遞數據,也就是無法進行通信
其基本代碼模板是:
// 創建需要啟動的Activity對應的Intent Intent intent = new Intent(StartActivity.this,SecondActivity.class); // 啟動intent對應的Activity startActivity(intent); 例,第一個Activity很簡單,值由一個按鈕,該按鈕進入第二個Activity, 第二個Activity只有兩個按鈕,一個按鈕簡單的返回第一個Activity,但是不會結束自己,第二個按鈕結束自己并返回上一個Activity
StartActivity.java
public class StartActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 獲取應用程序中的bn按鈕Button bn = (Button) findViewById(R.id.bn);// 為bn按鈕綁定事件監聽器bn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){// 創建需要啟動的Activity對應的IntentIntent intent = new Intent(StartActivity.this,SecondActivity.class);// 啟動intent對應的ActivitystartActivity(intent);}});} }SecondActivity.java
public class SecondActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.second);// 獲取應用程序中的previous按鈕Button previous = (Button) findViewById(R.id.previous);// 獲取應用程序中的close按鈕Button close = (Button) findViewById(R.id.close);// 為previous按鈕綁定事件監聽器previous.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){// 獲取啟動當前Activity的上一個IntentIntent intent = new Intent(SecondActivity.this,StartActivity.class);// 啟動intent對應的ActivitystartActivity(intent);}});// 為close按鈕綁定事件監聽器close.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){// 獲取啟動當前Activity的上一個IntentIntent intent = new Intent(SecondActivity.this,StartActivity.class);// 啟動intent對應的ActivitystartActivity(intent);// 結束當前Activityfinish();}});} }
總結
以上是生活随笔為你收集整理的启动Activity的两种方式startActivity和startActivityForResult(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Handler消息传递机制(二)Hand
- 下一篇: Activity的生命周期理解