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 -> {}
}
}
这些片段是非常快速和肮脏的片段,我建议例如,您在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;
}
}
添加回答
举报
