草庐IT

Viewmodel

全部标签

android - 如何在没有 ViewModelProviders 类的情况下获得 ViewModel?

关于过去的问题HowtogetaViewModel?,以及我发现的例子,它并不能解决我的问题。我没有在那里发表评论的权限,所以我不得不再次询问。我没有ViewModelProviders类,我想在我找到的所有示例和文档中使用“of”方法,例如model=ViewModelProviders.of(this).get(Something.class);在AndroidStudio中,我找不到要添加为依赖项的“android.arch.lifecycle:extensions”。当我搜索时它说“没有什么可显示的”。我在API27。所以,尝试使用未弃用的元素,我在fragment中有这个:p

android - 将 MvxDialogFragment 与 ViewModel 绑定(bind)

我有ViewModel和DialogFragment用于查看此虚拟机。在核心中,我以这种方式显示VMthis.ShowViewModel();我在AnnotationEditDialogFragment.cs中有这段代码[Register("AnnotationEditDialogFragment")]publicclassAnnotationEditDialogFragment:MvxDialogFragment{...publicoverrideDialogOnCreateDialog(BundlesavedInstanceState){base.EnsureBindingCont

android - ViewModel 值更改时 UI 未更新

我已经创建了示例应用来演示我的问题:一个TextView和一个Button,TextView可见性绑定(bind)到viewModel.bar我希望按钮在单击时切换viewModel.bar的值,并且UI也得到更新。然而,这并没有发生。值已更改,但UI未更新。布局文件:MainActivity文件:classMainActivity:AppCompatActivity(){privatevalviewModel=MainViewModel()privatelateinitvarbinding:ActivityMainBindingoverridefunonCreate(savedIns

Android 架构组件 ViewModel - 与 Service/IntentService 的通信

我正在探索Google的AndroidArchitectureComponents.在我的项目中,我依赖Services和IntentServices.与应用程序的ViewModel通信的正确方式是什么?来自IntentService或服务?使用LiveData可以实现吗? 最佳答案 TL;DR这是可以实现的——使用观察者关系。您的IntentService和可能的位置服务应该不知道您的ViewModel。考虑使用存储库。可以使用LiveData(参见postValue)。它有利于更新UI(ViewModel到Activity的通信

android - ViewModel 不能在 Activity 中实例化

我正在尝试实例化一个ViewModel以在我的所有Activity中使用。publicclassLaunchActivityextendsActivity{privateControllercontrol;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_launch);control=ViewModelProviders.of(this).get(Controller.class);}}

android - 在 Activity 和 ViewModel 之间传递数据

我正在学习Android编程的新架构组件,但我很难理解Activity的职责是什么。我知道他们只应该处理UI,这是有道理的,但到什么程度呢?假设我有一个Activity,最初有一个EditText,用户可以在其中输入字符串。在此下方有一个按钮,用于添加另一个EditText供用户输入另一个String。这些数据应该如何在幕后处理?我提出的两个解决方案如下:1)处理ViewModel中的数据。用户点击按钮->Activity告诉ViewModel->ViewModel维护EditTexts列表->当用户完成后,Activity告诉ViewModel->ViewModel处理数据我看到这种

android - 在 Activity 或 Fragment 之外获取 ViewModel 实例的正确方法

我正在构建一个定位应用程序,我在其中显示来self的MainActivity中的Room数据库的背景位置。我可以通过调用获取ViewModellocationViewModel=ViewModelProviders.of(this).get(LocationViewModel.class);locationViewModel.getLocations().observe(this,this);当我通过BroadCastReceiver接收位置更新时,周期性的背景位置应该保存到Room数据库中。它们应该通过调用locationViewModel.getLocations().setVal

java - ViewModel 如何在配置更改时持久化

查看ViewModel文档,它说:Inotherwords,thismeansthataViewModelwillnotbedestroyedifitsownerisdestroyedforaconfigurationchange(e.g.rotation).Thenewinstanceoftheownerwilljustre-connectedtotheexistingViewModel.如果引用它的Activity被销毁,ViewModel如何不被销毁?一旦我们创建了一个新的Activity,它是如何重新连接的? 最佳答案 幕后

android - 如何创建 ViewModel 并使用 dagger 2 向其注入(inject)存储库?

我尝试理解ViewModel。我创建ViewModel:publicclassUsersViewModelextendsViewModel{privatefinalUsersRepositoryusersRepository;publicUsersViewModel(UsersRepositoryusersRepository){this.usersRepository=usersRepository;}publicLiveData>loadAll(){returnusersRepository.getAll();}}但我不明白两件事:如何将UsersRepository注入(inje

java - 从 ViewModel 启动 DialogFragment 的推荐方法是什么?

我在Recyclerview中有一个列表对象。当长按一个项目时,我想显示一个对话框,其中包含单击项目的数据。Recyclerview为每个项目使用数据绑定(bind),我可以在长按时使用Log显示所选项目的数据。但是,当尝试显示对话框时,您需要访问Activity,不建议在ViewModel对象中使用它。那么如何显示对话框呢?谢谢,欧维 最佳答案 从概念上讲,我认为ViewModel是启动对话框的错误位置。为了更干净地做到这一点,我会将RecyclerView.ViewHolder传递到布局中,并在ViewHolder上有一个方法来