啟動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
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 獲取應用程序中的bn按鈕
Button bn = (Button) findViewById(R.id.bn);
// 為bn按鈕綁定事件監聽器
bn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
// 創建需要啟動的Activity對應的Intent
Intent intent = new Intent(StartActivity.this,
SecondActivity.class);
// 啟動intent對應的Activity
startActivity(intent);
}
});
}
}
~~~
SecondActivity.java
~~~
public class SecondActivity extends Activity
{
@Override
public 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()
{
@Override
public void onClick(View source)
{
// 獲取啟動當前Activity的上一個Intent
Intent intent = new Intent(SecondActivity.this,
StartActivity.class);
// 啟動intent對應的Activity
startActivity(intent);
}
});
// 為close按鈕綁定事件監聽器
close.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
// 獲取啟動當前Activity的上一個Intent
Intent intent = new Intent(SecondActivity.this,
StartActivity.class);
// 啟動intent對應的Activity
startActivity(intent);
// 結束當前Activity
finish();
}
});
}
}
~~~
- 前言
- Eclipse搭建android環境及Genymotion模擬器安裝問題解決方法
- 表格布局(TableLayout)及重要屬性
- 幀布局(FrameLayout)及屬性
- layout_width和width,layout_height和height
- UI組件之TextView及其子類
- UI組件之TextView及其子類(一)TextView和EditText
- UI組件之TextView及其子類(二)RadioButton和CheckBox
- UI組件之TextView及其子類(三)ToggleButton和Switch
- UI組件之TextView及其子類(四)AnalogClock,DigitalClock
- UI組件之TextView及其子類(五)計時器Chronometer
- UI組件之ImageView及其子類(一)ImageView顯示圖片
- UI組件之ImageView及其子類(二)ImageButton ,ZoomButton
- UI組件之AdapterView及其子類關系,Adapter接口及其實現類關系
- UI組件之AdapterView及其子類(一)三種Adapter適配器填充ListView
- UI組件之AdapterView及其子類(二)GridView網格視圖的使用
- UI組件之AdapterView及其子類(三)Spinner控件詳解
- UI組件之AdapterView及其子類(四)Gallery畫廊控件使用
- UI組件之AdapterView及其子類(五)ListView組件和ListActivity
- UI組件之AdapterView及其子類(六)ExpandableListView組件和ExpandableListActivity的使用
- UI組件之 ProgressBar及其子類(一)ProgressBar進度條的使用
- UI組件之ProgressBar及其子類(二)SeekBar拖動條和RatingBar星級評分條的使用
- ViewFlipper的功能和用法
- Toast的功能和用法
- TabHost選項卡的 功能和用法
- AlertDialog創建6種對話框的用法
- Android基于監聽的事件處理機制
- Android基于回調的事件處理
- Handler消息傳遞機制(一)
- Handler消息傳遞機制(二)Handler,Loop,Message,MessageQueue的工作原理
- 啟動Activity的兩種方式startActivity和startActivityForResult(一)
- 啟動Activity的兩種方式startActivity和startActivityForResult(二)
- Activity的生命周期理解
- Bundle在Activity之間交換數據
- 通過 Intent 傳遞類對象
- Intent對象詳解(一)
- Intent對象詳解(二)
- 使用指定的Action,Category調用系統Activity
- 使用Action,Data屬性啟動系統Activity
- Android數據存儲的三種方式-SharedPrefrences,File,SQLite