[Android] 兩個 Activity 之間傳遞資料(利用 Intent&Bundle )

兩個 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");
}

有話大聲說!