AndroidMVVM模式:如何启动带有结果返回的Activity?
创始人
2024-10-09 09:01:54
0

在MVVM架构下,建议使用LiveData和ViewModel来实现在Activity之间传递数据。要启动带有结果返回的Activity,我们可以在ViewModel中创建一个LiveData对象来观察结果并将结果返回给Activity。

例如,我们有一个主Activity和一个带有结果返回的子Activity。在主Activity中,我们可以使用以下代码启动子Activity:

Intent intent = new Intent(this, ChildActivity.class);
startActivityForResult(intent, REQUEST_CODE);

然后,在ViewModel中创建一个LiveData对象:

private MutableLiveData resultLiveData = new MutableLiveData<>();

public LiveData getResultLiveData() {
    return resultLiveData;
}

在子Activity中,我们可以通过如下方式返回结果:

Intent intent = new Intent();
intent.putExtra("result", "Hello World!");
setResult(Activity.RESULT_OK, intent);
finish();

然后,在子Activity关闭之前,我们可以将结果值存入ViewModel中的LiveData对象中:

((MyViewModel) ViewModelProviders.of(this).get(MyViewModel.class))
     .getResultLiveData().setValue(data.getStringExtra("result"));

最后,在主Activity中,我们可以观察LiveData对象中的值,以获取返回结果:

viewModel.getResultLiveData().observe(this, new Observer() {
    @Override
    public void onChanged(@Nullable String result) {
        if (result != null) {
            Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
        }
    }
});

这就是在Android MVVM架构下启动带有结果返回的Activity的解决方法。

相关内容

热门资讯

关于!微信微乐自建房辅助工具,... 关于!微信微乐自建房辅助工具,微乐家乡麻将自建房辅助app(开挂自建房)方法1)微乐家乡麻将自建房辅...
大家学习交流!微信卡五星辅助器... 大家学习交流!微信卡五星辅助器,微乐小程序免费黑科技(开挂自建房)方法1、很好的工具软件,可以解锁游...
三分钟了解!微乐微信自建房辅助... 三分钟了解!微乐微信自建房辅助工具插件,微乐家乡麻将自建房辅助app(开挂自建房)工具1、三分钟了解...
一分钟教会你!微乐家乡麻将自建... 一分钟教会你!微乐家乡麻将自建房辅助app,微乐自建房脚本免费入口(开挂自建房)方法1、用户打开应用...
分享实测!微信微乐自建房辅助工... 分享实测!微信微乐自建房辅助工具,微乐自建房脚本免费入口(开挂自建房)器1、起透看视 微信微乐自建房...
重大通报!微乐自建房辅助工具脚... 重大通报!微乐自建房辅助工具脚本,微乐小程序免费黑科技(开挂自建房)app微乐自建房辅助工具脚本破解...
如何分辨真伪!微乐微信自建房辅... 如何分辨真伪!微乐微信自建房辅助工具插件,微乐小程序免费黑科技(开挂自建房)技巧1、微乐微信自建房辅...
我来教教你!微乐自建房辅助工具... 我来教教你!微乐自建房辅助工具挂,微乐家乡麻将自建房辅助app(开挂自建房)工具1、玩家可以在微乐家...
重大来袭!微乐自建房辅助工具神... 重大来袭!微乐自建房辅助工具神器,微乐小程序免费黑科技(开挂自建房)器1、游戏颠覆性的策略玩法,独创...
带你了解!微信卡五星辅助器,微... 带你了解!微信卡五星辅助器,微乐自建房脚本免费入口(开挂自建房)方法1、带你了解!微信卡五星辅助器,...