谁能解释一下在android中实现MVVM架构时如何使用ViewModel和LiveData

阿都拉曼沙迈尔

我有点难以理解使用 viewmodel 和 livedata 的关系 b/w。我希望有人能为我解释一下。我是 Android 开发的新手。

安德烈·捷列什科

对于 MVVM 架构,它看起来像这样:您使用数据创建模型,在视图模型中访问和更改它(在 LiveData 的实例中)。并在视图(活动/片段)中观察它。

MainViewModel extends ViewModel{

   MutableLiveData<String> someStringObject = new MutableLiveData<>;

   private void someMethod{
       someStringObject.setValue("For main thread");
       someStringObject.postValue("For back thread");
   }

   public MutableLiveData<String> getSomeStringObject(){
       return someStringObject;
   }
}


FragmentA extends Fragment{ 

   @BindView(R.id.tv) //ButterKnife 
   TextView someTV;
   private MainViewModel mainViewModel;

   @Override
   public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState){
      //getting viewModel
      mainViewModel = ViewModelProviders.of(getActivity()).get(MainViewModel.class);
      //registering observer
      mainViewModel.getSomeStringObject.observe(this, value ->{
           someTV.setText(value);
      });
  }
}

通过这种方式,您可以对视图中的 ViewModel 更改做出反应。现在,如果在 mainViewModel 中更改了 getSomeStringObject,它将在 FragmentA 中自动更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

谁能解释一下在以下情况下如何分配大小?

来自分类Dev

谁能解释一下上面的代码如何工作以及使用哪个概念?

来自分类Dev

MSMQ 如何与 Hangfire 配合使用。谁能解释一下流程?

来自分类Dev

谁能解释一下这段代码如何创建一个实现接口并实例化该类的类?

来自分类Dev

谁能解释一下CGRectZero的用途

来自分类Dev

谁能解释一下Perl程序的行为

来自分类Dev

谁能解释一下公式

来自分类Dev

谁能解释一下如何在 Activity 之外初始化领域实例?例如,在用 volley 和 gson 解析 json 时?

来自分类Dev

谁能解释一下什么是Django modelform_factory和modelformset_factory?

来自分类Dev

谁能解释一下 ptr+1 和 ptr[0]+1 之间的区别

来自分类Dev

谁能解释一下C#中Windows窗体的大小调整是如何工作的

来自分类Dev

谁能解释一下字符串和数字比较在javascript中是如何工作的?

来自分类Dev

我是 android Java 的初学者。谁能解释一下代码

来自分类Dev

谁能解释一下“if”语句是如何在这里执行的

来自分类Dev

谁能解释一下jquery中函数的执行过程

来自分类Dev

您能解释一下jQuery如何同时使用$作为函数和对象吗?

来自分类Dev

谁能解释一下shutil.rmtree和shutil.copytree的这种怪异行为?

来自分类Dev

谁能解释一下另一个函数中函数的这种行为?

来自分类Dev

谁能解释一下导致CPU过热的原因

来自分类Dev

谁能解释一下这部分代码吗?

来自分类Dev

谁能解释一下这段代码的第 3 行吗?

来自分类Dev

谁能解释一下这部分代码“((MainActivity)getActivity()).someMethod()”的含义?

来自分类Dev

请谁能解释一下这个递归代码?

来自分类Dev

谁能解释一下这段代码?为什么显示 1

来自分类Dev

为什么下面的程序输出是 5,而不是 4?谁能解释一下?

来自分类Dev

令人困惑的 CSS - 谁能解释一下

来自分类Dev

你能解释一下如何在android代码中生成密码吗

来自分类Dev

你能解释一下如何在android代码中生成密码吗

来自分类Dev

代码的左侧如何为count和bin_edges分配值?谁能简要解释一下这段代码

Related 相关文章

  1. 1

    谁能解释一下在以下情况下如何分配大小?

  2. 2

    谁能解释一下上面的代码如何工作以及使用哪个概念?

  3. 3

    MSMQ 如何与 Hangfire 配合使用。谁能解释一下流程?

  4. 4

    谁能解释一下这段代码如何创建一个实现接口并实例化该类的类?

  5. 5

    谁能解释一下CGRectZero的用途

  6. 6

    谁能解释一下Perl程序的行为

  7. 7

    谁能解释一下公式

  8. 8

    谁能解释一下如何在 Activity 之外初始化领域实例?例如,在用 volley 和 gson 解析 json 时?

  9. 9

    谁能解释一下什么是Django modelform_factory和modelformset_factory?

  10. 10

    谁能解释一下 ptr+1 和 ptr[0]+1 之间的区别

  11. 11

    谁能解释一下C#中Windows窗体的大小调整是如何工作的

  12. 12

    谁能解释一下字符串和数字比较在javascript中是如何工作的?

  13. 13

    我是 android Java 的初学者。谁能解释一下代码

  14. 14

    谁能解释一下“if”语句是如何在这里执行的

  15. 15

    谁能解释一下jquery中函数的执行过程

  16. 16

    您能解释一下jQuery如何同时使用$作为函数和对象吗?

  17. 17

    谁能解释一下shutil.rmtree和shutil.copytree的这种怪异行为?

  18. 18

    谁能解释一下另一个函数中函数的这种行为?

  19. 19

    谁能解释一下导致CPU过热的原因

  20. 20

    谁能解释一下这部分代码吗?

  21. 21

    谁能解释一下这段代码的第 3 行吗?

  22. 22

    谁能解释一下这部分代码“((MainActivity)getActivity()).someMethod()”的含义?

  23. 23

    请谁能解释一下这个递归代码?

  24. 24

    谁能解释一下这段代码?为什么显示 1

  25. 25

    为什么下面的程序输出是 5,而不是 4?谁能解释一下?

  26. 26

    令人困惑的 CSS - 谁能解释一下

  27. 27

    你能解释一下如何在android代码中生成密码吗

  28. 28

    你能解释一下如何在android代码中生成密码吗

  29. 29

    代码的左侧如何为count和bin_edges分配值?谁能简要解释一下这段代码

热门标签

归档