在一個Activity中可以使用系統提供的startActivity(Intent intent)方法開啟新的Activity,在開啟新的Activity前,你可以決定是否為新的Activity傳遞參數。
第一種:開啟新的Activity,不傳遞參數
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnOpen=(Button)this.findViewById(R.id.btnOpen);
btnOpen.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
//建立一個顯式意圖,第一個參數為當前Activity類對象,第二個參數為你要開啟的Activity類
startActivity(new Intent(MainActivity.this, OtherActivity.class));
}
});
}
}
第二種:開啟新的Activity,並傳遞若干個參數給它
package com.ljq.activitys;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnOpen=(Button)this.findViewById(R.id.btnOpen);
btnOpen.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
//第一種:開啟新的Activity,不傳遞參數
//建立一個顯式意圖,第一個參數為當前Activity類對象,第二個參數為你要開啟的Activity類
//startActivity(new Intent(MainActivity.this, OtherActivity.class));
//第二種:開啟新的Activity,並傳遞若干個參數給它
Intent intent=new Intent(MainActivity.this, OtherActivity.class);
//Bundle類用作攜帶資料
Bundle bundle=new Bundle();
bundle.putString("name", "linjiqin");
bundle.putInt("age", 24);
//附帶上額外的資料
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}
在新的Activity中接收前面Activity傳遞過來的參數
package com.ljq.activitys;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class OtherActivity extends Activity {
private final static String TAG="OtherActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
//在新的Activity中接收前面Activity傳遞過來的參數
Bundle bundle=this.getIntent().getExtras();
String name=bundle.getString("name");
Integer age=bundle.getInt("age");
Log.i(TAG, name+" : "+age);
}
}