兩個 Activity 之間的資料傳遞對於 Android 來說實在是非常重要。在 Android 裡面需要使用到 Insent 以及 Bundle 來做資料的傳送與接收,就讓我們來看看吧
傳送
Intent intent = new Intent();
intent.setClass(context, [傳遞並開啟的Activity].class);
Bundle bundle = new Bundle();
bundle.putInt("[Key]", [傳遞內容]);
bundle.putString("[Key]", [傳遞內容]);
intent.putExtras(bundle);
context.startActivity(intent);
接收
int ID;
String Data;
Bundle bundle = getIntent().getExtras();
ID = bundle.getInt("[Key]");
Data = bundle.getString("[Key]");
範例
這邊範例是在 onClick 裡面觸發事件,傳遞資料並開啟 Main2Activity
@Override
public void onClick(View v)
{
Int ID = 0;
String Data = "123";
Intent intent = new Intent();
intent.setClass(context, Main2Activity.class);
Bundle bundle = new Bundle();
bundle.putInt("ID", ID);
bundle.putString("Data", Data);
intent.putExtras(bundle);
context.startActivity(intent);
}
一般來說接收都會寫在 onCreate 裡面,主要是 Key 相同以及形別相同,就可以傳遞成功
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sound);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
int ID = -1;
String Data = "";
//========== Bundle ==========//
Bundle bundle = getIntent().getExtras();
ID = bundle.getInt("ID");
Data = bundle.getString("Title");
}