1 回答

TA貢獻1815條經驗 獲得超6個贊
嘗試使用 。startActivityForResult
閱讀官方安卓開發者文檔中的文檔
從本質上講,你會做的是將數據傳遞給稱為s的對象,如下所示(例如在Kotlin中):Intent
在您的第一個活動中:
private fun goToSelectDateActivity() {
val requestCode =324
val intent = Intent(this, CalendarActivity::class.java)
startActivityForResult(intent, requestCode)
}
在您的第二個活動中
private fun passSelectedDateToPreviousActivity(selectedDate: Date) {
val data = Intent()
data.putExtra("DATE", selectedDate.toString());
setResult(Activity.RESULT_OK, data);
finish()
}
回到您的第一個活動的方法overrideonActivityResult
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if(resultCode != Activity.RESULT_OK) return
when(requestCode) {
324 -> { yourTextView.text = data.getStringExtra("DATE"); }
// Other result codes
else -> {}
}
}
這些片段是非??焖俸腕a臟的片段,我建議例如,您在Java中將您作為靜態變量,或者在Kotlin中的活動的伴隨對象的屬性中。requestCode
爪哇的等價物將是
在您的第一個活動中:
private void goToSelectDateActivity() {
int requestCode =324;
Intent intent = new Intent(this, CalendarActivity.getClass());
startActivityForResult(intent, requestCode);
}
在您的第二個活動中
private void passSelectedDateToPreviousActivity(Date selectedDate) {
Intent data = new Intent();
data.putExtra("DATE", selectedDate.toString());
setResult(Activity.RESULT_OK, data);
finish();
}
回到您的第一個活動的方法overrideonActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode != Activity.RESULT_OK) return;
switch(requestCode) {
case 324:
yourTextView.setText(data.getStringExtra("DATE"));
break;
// Other result codes
default: break;
}
}
添加回答
舉報