Frgamnet之间的数据共享
使用ViewModel
Fragment与宿主Activity之间的交互:
在某些情况下,您可能需要在 Fragment 与其宿主 Activity 之间共享数据,使用LiveData只需要将宿主Activity的范围和Fragment的范围设置一致即可:
在Activity中:
//viewModels范围为自身
private val userLive by viewModels<UserLive>();
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState);
val activityNewBinding = ActivityNewBinding.inflate(layoutInflater);
setContentView(activityNewBinding.root);
//viewModel监听事件
userLive.liveData.observe(this, Observer {
Log.d("NewActivity", "onCreate: update");
activityNewBinding.text1.text = it.account;
activityNewBinding.text2.text = it.password;
});
activityNewBinding.start.setOnClickListener()
{
startActivity(Intent(this,MainActivity::class.java));
}
}
在Fragment中:
//viewModels范围为宿主activityViewModels
private v