關於activity本文主要總結一下學習的頁面間的跳轉,兩種方式,以及傳遞參數和接收返回值。
關於跳轉到下一個頁面,兩個activity間通過Intent來通訊,兩種方式:
startActivity();
startActivityForResult();
一、打開下一個頁面
Intent intent=new Intent(this, NewActivity.class);
// 下面是另外3種設置激活組件的方法
//intent.setClass(this, NewActivity.class);
//intent.setClassName(this, "com.example.mulactivity.NewActivity");
//intent.setComponent(new ComponentName(this, NewActivity.class));
startActivity(intent);
2、將參數傳遞到下一個頁面
傳遞的方法:
public void OpenNewActivity(View v){
Intent intent=new Intent(this, NewActivity.class);
//第一種傳值方式
//intent.putExtra("name", "atm");
//intent.putExtra("age", 10);
//第二種傳值方式
Bundle bundle=new Bundle();
bundle.putString("name", "atm");
bundle.putInt("age",10);
intent.putExtras(bundle);
startActivity(intent);
下一個頁面接收的方法:
Intent intent=getIntent();
//第一種接收數據的方法
//String name=intent.getStringExtra("name");
//Integer age=intent.getIntExtra("age", 0);
//第二中接受數據的方法
//Bundle bundle = intent.getExtras();
//String name = bundle.getString("name");
//int age = bundle.getInt("age");
//textview.setText(name+"的年齡是:"+age);
3、獲得下一個頁面關閉時返回的值
重寫onActivityResult()方法
public void OpenNewActivity(View v){
Intent intent=new Intent(this, NewActivity.class);
startActivityForResult(intent, 88);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
String res = data.getStringExtra("res");
Toast.makeText(this,res, Toast.LENGTH_LONG).show();
//super.onActivityResult(requestCode, resultCode, data);
}
關閉頁面時向上一級頁面返回值:
public void CloseActivity(View v){
Intent intent = new Intent();
intent.putExtra("res", "這是我返回回來的數據");
setResult(20, intent);
this.finish();//關閉當前的activity
}