问题标签 [android-mvvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2981 浏览

android - 使用带有复选框的android双向数据绑定

我正在尝试在片段中databinding使用android 双向。 我在custom中有多个片段,在 first 中有一个。 我有一个带有以下代码的复选框:checkBox
viewPagerFragmentStatePagerAdapterviewModelfragment

在视图模型中:

当我走到最后fragment并返回第一个时,checkBox不再选中,复选框的颜色为真,但复选图标不存在!以前有人遇到过这个问题吗?

提前致谢

0 投票
1 回答
5867 浏览

android - 在 MVVM 架构中从 ViewModel 启动 Activity 的最佳方法

我在应用程序中关注 MMVM 架构,一切正常,直到我使用以下代码从 ViewModel 启动活动时崩溃。方法是使用数据绑定从 XML 调用并view作为参数传递的,并且getApplication()AndroidViewModel类中的方法。

我相信这是因为我没有使用 NEW_TASK 标志,因为我在 Activity 类之外开始活动。

现在有以下我能想到的解决方案,但从架构的角度来看,我不确定哪一个是最好的。

1. ViewModel 带有一个方法,该方法Activity作为参数并从片段中调用该方法

现在在片段中添加一个类似这样的监听器

2. 为意图添加一个新任务标志并将其保存在 ViewModel 本身中

3.从fragment本身启动Activity

我相信所有这些方法都可以正常工作,但要记住一个问题

是否可以在 Fragment 中单独设置侦听器以使用绑定的 ViewModels 从视图 xml 调用方法?

我不确定第二种方法是否仍会使某些操作系统中的应用程序崩溃。

从架构的角度和单元测试的角度来看,哪一种是最好的方法?

0 投票
1 回答
655 浏览

android - 在Android中,如果我使用绑定,如何应用ClickableSpan?

我知道如果没有应用绑定,那么我可以使用Textview.setText(ClickableSpan)spannig 效果来使部分文本可点击。但是,我的应用程序使用了绑定,并且 textview 的文本被绑定到 xmlandroid:text="@{model.certainString}"中的 ViewModel 和我声明的 ViewModel 中String certainString = "",在这种情况下,我如何在 ViewModel 中应用跨越呢?

0 投票
1 回答
2204 浏览

android - 使用 mvvp 结构中的数据绑定导航到另一个活动

我正在学习数据绑定库,对此我完全陌生。我的问题是如何导航到数据绑定的另一个活动。

我可以像我们在 MVC 中那样做吗?或者我必须把代码放在 ViewModel 中。请帮我。

这是我的代码。

活动:

XML:

我需要将 onclick 代码放在视图模型中吗?如果是,那么该怎么做?

0 投票
1 回答
4015 浏览

android - 如何使用数据绑定在 MVVM 中设置适配器

我是 MVVM 和 DataBinding 的新手。我已经设置了 ViewHolder 和 Adapter。现在我不知道如何在活动中设置适配器。我应该使用另一个 ViewModel 来填充对象的数组列表吗?如果是,那该怎么做?

我实现的代码如下:

分数活动:

评分视图模型

0 投票
1 回答
210 浏览

android - recyclerview 上没有显示数据

我正在学习 mvvm 结构,并使用 mvvm 结构制作了一个应用程序。我也用过房间RxJava

代码

在这里,我可以看到日志中打印的大小是正确的。但我在这里看不到项目。

活动分数

现在,ScoreViewModel

ScoreAdapter

视图持有者

现在,我的问题是为什么我看不到 recyclerview 项目。当我在不使用空间的情况下设置数据时,它非常有效(不从数据库中获取数据,而是静态地创建和添加 ScoreDataViewModel 对象)。我哪里做错了?或者我这样做的方式是错误的?请帮助我,因为我对房间、rxjava 和 mvvm 完全陌生。

如果您提出要求,我还可以编辑问题并添加更多信息。请帮我。

注意scoreAdapter.notifyDataSetChanged()方法不起作用。

0 投票
1 回答
661 浏览

android - 使用 room 和 mvvm 添加记录和通知活动的正确方法

我正在学习 android mvvm 结构,在实现它时我有疑问。我正在使用房间在数据库中插入一个用户对象。但是,我不知道插入成功后如何通知活动。

我试图实现它。但是,它没有用。让我展示我的代码。

注册活动

注册视图模型

我在从视图模型打印的日志中获得了正确的名称和密码值,但是该记录没有添加到按钮上的单击事件中,也没有通知有关成功或失败的活动。在这种情况下该怎么办?

请指导我,因为我是 mvvm 的新手并正在学习它。

0 投票
1 回答
716 浏览

android - 错误:找不到 ActivitySplashBinding

我正在尝试检查用户是否已登录。如果是,则显示特定的视图组,否则显示不同的视图组。要检查用户是否已登录,我正在从共享首选项中获取用户(登录时用户保存在共享首选项中)。让我展示我的代码。

飞溅视图模型

活动飞溅

飞溅活动

但是当我尝试运行时,它给了我以下错误。

错误:找不到符号类 ActivitySplashBinding

有人可以帮我吗?

0 投票
2 回答
8055 浏览

android - 如果存在则更新记录,否则在 Room 中插入新记录

我是 Room、Rxjava 和其他 android 架构组件的新手。我正在尝试更新/插入 2 条记录(如果行已经存在,请更新它。否则插入一个新行。)我尝试按以下方式进行操作。但是,我没有工作。

游戏活动:

游戏视图模型:

本地用户数据源

道访问

问题是,当我尝试运行时,如果我尝试在 GameViewModel 类的以下行中插入任何不在数据库中的用户,则会发生 NullPointer 异常。

谁能告诉我我错在哪里或我该怎么办?

编辑

我想要做的是首先获取一个用户,如果它在数据库中,更新增加或减少分数(如果获胜者则 +1 获胜列,如果失败者则 +1 损失列)。如果用户在表中不存在,则创建一个新条目。

0 投票
2 回答
5268 浏览

android - 如何使用数据绑定请求或移除对 edittext 的关注

我正在学习结构并使用结构mvvm制作应用程序。mvvmdata binding

现在,我想做的是,我想从 sharedpreference 中获取一个用户,如果我成功获取了一个用户,我会将 usr 的名称设置为edittext1. 在这种情况下,我想请求关注 edittext2

如何使用数据绑定来实现?(以这样的方式,我不必使用活动。这项工作应该只使用视图模型和 xml 来完成。)

我已经尝试过使用以下方式。

开始游戏视图模型

activity_start_game.xml

开始游戏活动: