当前位置: 首页 > 知识库问答 >
问题:

在ViewModel中从存储库获取变量值时类型不匹配

袁帅
2023-03-14

我使用的是Android上架构组件的LiveData和ViewModel。

这是我的存储库类-

class DataRepository {

    var imagePath : String = ""
}

这是我的ViewModel,我想在存储库中的值更新后从存储库中获取imagePath的值-

class DataViewModel : ViewModel() {

    internal lateinit var imagePath : MutableLiveData<String>
    imagePath.value = DataRepository().imagePath

}

问题是DataRepository中的ImagePath类型为String,而DataViewModel中的ImagePath类型为MutableLiveData。

如何将存储库中的ImagePath值分配给ViewModel中的值?我需要进行任何类型转换吗?

共有1个答案

常培
2023-03-14

MutableLiveData类中有一个方法:setValue。因此,您可以尝试这样做:

internal lateinit var imagePath : MutableLiveData<String>
imagePath.setValue(DataRepository().imagePath)
 类似资料:
  • 我想从传递的几个值动态调用几个“setter”方法。每个方法都将具有字符串,int...要设置的变量类型(例如:setUserName(String userName)或setUserAge(int age))。 在我的例子中,我有一个setter方法“setUse_status(int use_stats)”,我无法配置getDeclaredMethod方法工作。似乎在获取方法时,classVa

  • 问题内容: 场景是我需要至少两次访问一个值。即我正在使用记录器来跟踪应用程序中正在发生的事情。我想记录该函数正在运行的对象的名称,然后再执行具有相同名称的操作(即检查它是否包含一些字符串或将其放入数组中)。 将名称存储在变量中: 或两次调用getName(): 我了解,在第一种情况下,我将创建一个新的String,为其分配一个值,然后两次检索该值。这样,我正在使用更多的内存资源,对吗? 在第二种情

  • 我正在使用此代码并获得类型不匹配的错误,运行时错误'13'错误在下面标记的行中,而具体错误是由于其中条件()在查询...

  • 我有一个类,它将我的jpa实体转换为到,反之亦然。 当我在方法中进行转换时,返回的是,我需要它是。 是否可以迭代此集合()并获取“to”值? 转炉 转炉生产者

  • 我想获取所选框的值,并将其保存在PHP变量中。我想保存并回显变量。请帮忙

  • 我正在尝试从profile repository中获取first name和last name等属性,并使用Droplet将其显示在jsp中。下面是我的示例代码:sampledroplet.java SampleDroplet.Properties sampledroplet.jsp 我试着在jsp中显示profileId,它起作用了。但当我将它传递给droplet时,它显示NullPointer