示例描述:
点击FlowersListActivity中的按钮fabButton跳转到添加item的AddFlowerActivity,在AddFlowerActivity中添加花卉的名称和描述两个信息,如果两个均不为空则添加成功,返回到FlowersListActivity中展示。
1、fabOnClick点击后跳转至AddFlowerActivity:
/* 单击FAB时将花添加到flowerList. */
private fun fabOnClick() {
val intent = Intent(this, AddFlowerActivity::class.java)
startActivityForResult(intent, newFlowerActivityRequestCode)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, intentData: Intent?) {
super.onActivityResult(requestCode, resultCode, intentData)
/* Inserts flower into viewModel. */
if (requestCode == newFlowerActivityRequestCode && resultCode == Activity.RESULT_OK) {
intentData?.let { data ->
val flowerName = data.getStringExtra(FLOWER_NAME)
val flowerDescription = data.getStringExtra(FLOWER_DESCRIPTION)
flowersListViewModel.insertFlower(flowerName, flowerDescription)
}
}
}
2、添加花卉的描述信息并设置setResult,finish自身返回到上一个activity。
/* 完成按钮的onClick动作。关闭活动并作为意图的一部分返回新的花名和描述。如果缺少名称或描述,则将结果设置为“取消”*/
private fun addFlower() {
val resultIntent = Intent()
if (addFlowerName.text.isNullOrEmpty() || addFlowerDescription.text.isNullOrEmpty()) {
setResult(Activity.RESULT_CANCELED, resultIntent)
} else {
val name = addFlowerName.text.toString()
val description = addFlowerDescription.text.toString()
resultIntent.putExtra(FLOWER_NAME, name)
resultIntent.putExtra(FLOWER_DESCRIPTION, description)
setResult(Activity.RESULT_OK, resultIntent)
}
finish()
}
3、跳转回原来FlowersListActivity,在onActivityResult中进行后续处理,本例中是获取到了两个添加花卉的参数