gpt4 book ai didi

java - Android MVVM 谁应该读取和存储包

转载 作者:行者123 更新时间:2023-12-01 22:20:01 26 4
gpt4 key购买 nike

我有一个包含几个文本和一个图像的简单 Activity ,在创建 Activity 时,我通过 bundle 获取此 View 元素的数据。现在我正在尝试将架构更改为 MVVM,我想知道如何以及在哪里存储 bundle 信息?

对于我一直在读取的数据应该位于“模型”级别,但我已经在 bundle 中拥有数据,我应该创建一个模型并将数据存储在其中还是 ViewModel 中?

我的 ViewModel 看起来像这样:

public class SimpleInfoViewModel extends ViewModel {

private Context context;

public SimpleInfoViewModel(Context context) {
this.context = context;
}

}

我的观点:

public class SimpleInfoActivity extends AppCompatActivity {

private SimpleInfoViewModel viewModel;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

getViewBundledInfo();

initViewModel();
}

private void getViewBundledInfo() {
final Bundle extras = getIntent().getExtras();
if (extras != null) {
title = extras.getString("title");
}
}

private void initViewModel() {
SimpleInfoViewModel viewModel = new SimpleInfoViewModel(this);
}

最佳答案

您需要创建一个名为 SimpleInfoViewModelFactory 的类扩展 ViewModelProviders.Factory。

SimpleInfoViewModelFactory(String title) extends ViewModelProviders.Factory {.. copy paste codr from document.. .}

在 Activity 中创建 ViewModel 的方式是完全错误的

SimpleInfoViewModelFactory vmf = SimpleInfoViewModelFactory(bundle.extras.title)
SimpleInfoViewModel vm = VieeModelProvders.of(this,vmf).get(SimpleInfoViewModel.class)

这会像现在一样创建一个 ViewModel,但您可以使用它来获得初始化值。你可以在文档上看到。非常简单

关于java - Android MVVM 谁应该读取和存储包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58597946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com