安卓:(..)片段类和 (..)视图模型类



我对安卓环境比较陌生。我从模板创建了一个项目。在这个项目中,我做了很多关于片段的工作。对于每个片段,一个名为 [...] 的类片段.java和 [...]视图模型.java 已创建。各个类负责什么。第一个是什么,第二个是什么?

头等舱:

public class HomeFragment extends Fragment {
private HomeViewModel homeViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
homeViewModel =
ViewModelProviders.of(this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, false);
final TextView textView = root.findViewById(R.id.text_home);
homeViewModel.getText().observe(this, new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
return root;
}
}

二等舱:

public class HomeViewModel extends ViewModel {
private MutableLiveData<String> mText;
public HomeViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is home fragment");
}
public LiveData<String> getText() {
return mText;
}
}

片段是你的视图控制器,它控制视图,知道何时单击按钮,或放置文本的位置,或者用户是否键入编辑文本。

viewModel 负责应用的逻辑和数据,例如单击按钮时要执行的操作,或者文本视图应显示的内容。 单击按钮时,片段调用视图模型以执行正确的操作。 视图(您的片段(不应该能够更改视图中的属性模型,它应该能够观察它们,为此我们使用 LiveData。

它们都是称为MVVM的体系结构的一部分,是Model,View,View-Model的缩写。 查找 MVVM 以获取更多信息

应用体系结构指南

此外,这个 udacity 课程可以为您提供很多帮助

使用 Kotlin 开发 Android 应用程序

最新更新