方法一:
1、新建一個project,建立兩個Activity,分別為MainActivity和Main2Activity
2、MainActivity創建一個按鈕,並設置其文本為:啟動下一個Activity。在Main2Activity里創建一個Textview,並設置好其id
3、在MainActivity里實現如下代碼:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //創建並實現一個監聽器 findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //監聽器要做的事情 Intent i=new Intent(MainActivity.this,Main2Activity.class);//MainActivity和Main2Ativity連接起來 允許他們之間傳遞數據 // i.putExtra("data","nihao");//用putExtra把內容傳送到另一個Activity,名字是data,值是nihao Bundle b=new Bundle(); b.putString("name","xiaohong"); b.putInt("age",2); i.putExtras(b);//傳遞Bundle打包的數據 startActivity(i);//啟動第二個activity並把i傳遞過去 } }); } }
4、在Main2Activity里實現如下代碼:
public class Main2Activity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Intent i=getIntent();//因為Mian2Activity是通過intend來啟動的,所以通過getIntend來獲取與這個Activity相關的數據 Bundle data=i.getExtras();//獲取數據包 tv=(TextView) findViewById(R.id.tv22); // tv.setText(i.getStringExtra("data"));//因為MainActivity里通過putExtra傳遞時名字是data,值是nihao tv.setText(String.format("name=%s,age=%d",data.getString("name"),data.getInt("age")));//把數據包的數據展現出來 } }
5、運行效果如下:
在第一張Activity里有一個Button,
點擊第一張的Button,另一個Activity啟動,並出現傳送的數據包內容
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
方法二:
在MainActivity里實現如下代碼:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //創建並實現一個監聽器 findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //監聽器要做的事情 Intent i=new Intent(MainActivity.this,Main2Activity.class);//MainActivity和Main2Ativity連接起來 允許他們之間傳遞數據 // i.putExtra("data","nihao");//用putExtra把內容傳送到另一個Activity,名字是data,值是nihao Bundle b=new Bundle(); b.putString("name","xiaohong"); b.putInt("age",2); // i.putExtras(b);//傳遞Bundle打包的數據 //方法一 i.putExtra("data",b);//方法二:選擇putExtra中的一個可以直接傳遞Bundle的函數 startActivity(i);//啟動第二個activity並把i傳遞過去 } }); } }
注:putExtra中有一個可以直接傳遞Bundle的函數,下圖:
在Main2Activity里實現如下代碼:
public class Main2Activity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Intent i=getIntent();//因為Mian2Activity是通過intend來啟動的,所以通過getIntend來獲取與這個Activity相關的數據 //Bundle data=i.getExtras();//方法一:獲取數據包 Bundle data=i.getBundleExtra("data");//方法二 tv=(TextView) findViewById(R.id.tv22); // tv.setText(i.getStringExtra("data"));//因為MainActivity里通過putExtra傳遞時名字是data,值是nihao tv.setText(String.format("name=%s,age=%d",data.getString("name"),data.getInt("age")));//把數據包的數據展現出來 } }