一、多個Activity之間的關係
1.Activity01和Activity02可以是同一程序的activity,也可以是不同程序的;
2.Activity01調用startActivity方法,傳一個intent對象,來實現Activity01切換到Activity02;
二、Intent的基本作用:Intent就像一個請求
Component name:指定我要啓動哪一個組件
Action:啓動這個組件後,指定這個組件要做什麼
Data:一個組件向另外一個組件傳遞的數據
Extras:鍵值對,一個組件的鍵值對,通過intent對象傳遞到另外一個組件的鍵值對
三、在一個Activity中啓動另外一個Activity的方法:
(1)複寫Activity的方法:右鍵/Source/Override/ImplementMethods/勾選下圖:
(2)爲Activity創建佈局文件:右鍵layout/new/file,輸入文件名(文件名中不能有大寫字母,後綴爲.xml)
public class Activity02 extends Activity {
privateButton myButton = null;
//複寫父類當中的onCreate方法,Activity第一次運行時會調用這個方法
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//爲Activity設置佈局管理文件
setContentView(R.layout.main);
myButton = (Button)findViewById(R.id.myButton);
//爲按鈕對象設置監聽器對象
myButton.setOnClickListener(new MyButtonListener());
}
//以下是一個內部類,這個內部類的對象是一個監聽器
class MyButtonListener implements OnClickListener{
//生成該類的對象,並將其註冊到控件上。如果該控件被用戶按下,就會執行onClick方法
@Override
publicvoid onClick(View v) {
//生成一個Intent對象
Intent intent = new Intent();
//在Intent對象當中添加一個鍵值對
intent.putExtra("testIntent","123");
//設置Intent對象要啓動的Activity, Activity02.this傳遞到OtherActivity.class
intent.setClass(Activity02.this,OtherActivity.class);
//通過Intent對象啓動另外一個Activity
Activity02.this.startActivity(intent);
/**以下的4行代碼將啓動發送短信的Activity
Uriuri = Uri.parse("smsto://0800000123");
Intentintent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body","The SMS text");
startActivity(intent);
*/
}
}
}
四、被啓動的Activity接受intent傳遞過來的鍵值對
//取得從上一個Activity當中傳遞過來的Intent對象
Intent intent = getIntent();
//從Intent當中根據key取得value
String value = intent.getStringExtra("testIntent");
//根據控件的ID得到響應的控件對象
myTextView = (TextView)findViewById(R.id.myTextView);
//爲控件設置Text值
myTextView.setText(value);