Erk*_*kan 6 android android-activity onactivityresult android-architecture-navigation
我正在使用NavController来启动一个活动 - 它有自己的导航图 - 用于登录/注册流程。
现在我想在更新 UI时获得LoginActivity(成功、失败)的结果。MainActiviy
MainActvity (start)-> LoginActivity
MainActvity <-(result) LoginActivity end
Run Code Online (Sandbox Code Playgroud)
是否可以使用导航组件来处理这种情况,或者我是否必须使用类似的东西startActivityForResult(LoginActivity...)来获取结果LoginActivity?
或者,还有更好的方法?我认为一个可能的解决方案可能是在 Activity 之间使用相同的 viewModel 实例,但不确定这是否可行。:-/
小智 0
这是可能的:
如果片段 A 需要片段 B 的结果..
A 应该从 currentBackStackEntry 获取 savingStateHandle,调用提供密钥的 getLiveData 并观察结果。
findNavController().currentBackStackEntry?.savedStateHandle?.getLiveData<Type>("key")?.observe(
viewLifecycleOwner) {result ->
// Do something with the result.
}
Run Code Online (Sandbox Code Playgroud)
B应该从previousBackStackEntry中获取savedStateHandle,并将结果设置为与A中的LiveData相同的key
findNavController().previousBackStackEntry?.savedStateHandle?.set("key", result)
Run Code Online (Sandbox Code Playgroud)
来源:https ://issuetracker.google.com/issues/79672220#comment55
| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |