【问题标题】:ViewModel SavedStateHandler.get for LiveData can't set default value as per the document?LiveData 的 ViewModel SavedStateHandler.get 无法根据文档设置默认值?
【发布时间】:2020-07-24 18:07:43
【问题描述】:

在参考https://developer.android.com/reference/androidx/lifecycle/SavedStateHandle#getLiveData(java.lang.String,%20T)

Java 中的示例代码如下。

 String defaultValue = ...; // nullable
 LiveData<String> liveData;
 if (defaultValue != null) {
     liveData = savedStateHandle.get(KEY, defaultValue);
 } else {
     liveData = savedStateHandle.get(KEY);
 }

但是,我注意到当试图编译代码时,下面的语句是不可编译的。

savedStateHandle.get(KEY, defaultValue);

错误提示

get(String) in SavedStateHandle cannot be applied to (String, java.lang.String).

我追踪到代码,似乎savedStatehandle 没有采用默认值的get。我错过了什么吗?

【问题讨论】:

    标签: android android-livedata android-architecture-components android-savedstate


    【解决方案1】:

    显然 Google 文档有错字。应该是

     String defaultValue = ...; // nullable
     LiveData<String> liveData;
     if (defaultValue != null) {
         liveData = savedStateHandle.getLiveData(KEY, defaultValue);
     } else {
         liveData = savedStateHandle.getLiveData(KEY);
     }
    

    getLiveData 而不仅仅是 get

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2022-01-08
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      相关资源
      最近更新 更多