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

Android Room LiveData选择查询参数

董法
2023-03-14

共有1个答案

秦景福
2023-03-14

我认为你的解决方案是转换。最简单的例子是如何在codelab的情况下工作

public class WordViewModel extends AndroidViewModel {
    private WordRepository mRepository;
    private LiveData<List<Word>> mAllWords;
    private LiveData<List<Word>> searchByLiveData;
    private MutableLiveData<String> filterLiveData = new MutableLiveData<>();

    public WordViewModel (Application application) {
        super(application);
        mRepository = new WordRepository(application);
        mAllWords = mRepository.getAllWords();
        searchByLiveData = Transformations.switchMap(filterLiveData, 
                                                     v -> mRepository.searchBy(v));
    }

    LiveData<List<Word>> getSearchBy() { return searchByLiveData; }
    void setFilter(String filter) { filterLiveData.setValue(filter); }
    LiveData<List<Word>> getAllWords() { return mAllWords; }
    public void insert(Word word) { mRepository.insert(word); }
}

因此,当您设置筛选值时,它将改变searchByLiveData的值

希望这对你有帮助。

 类似资料:
  • 我试图使用jpa组件来选择从标题中获取的id。我在文档中找到了一个使用本机select查询的示例: 我试图用${header.id}替换“1”常量: 这似乎不管用,我明白了: 也许还有别的方法可以让它发挥作用?

  • 问题内容: 我需要实现一个使用第一个查询参数来标识操作的Web服务,即客户端调用将类似于:或。 似乎我无法使用@Path注释来区分方法,因为区别特征在于查询参数。以下示例也引发了异常: 有没有一种方法可以根据查询参数指定要使用的方法?还是我真的必须定义一种方法并在其中检查是否设置了某些查询参数? 问题答案: 我认为Claudio是正确的-您可以使用Jersey,但是您将自己处理查询参数,因为它仅在

  • 问题内容: 我想使用选择器使用cloudant db进行查询,例如下面所示:用户希望借入的借贷金额超过数字,如何在cloudant选择器中访问数组以查找特定记录 问题答案: 如果您使用默认的Cloudant Query索引(键入文本,对所有内容建立索引): 然后,以下查询选择器应可以查找例如所有借贷金额> 1000的文档: 我不确定您是否可以哄骗Cloudant查询仅索引数组中的嵌套字段,因此,如

  • 问题内容: 我有一个名为faq_questions的表,其结构如下: 我试图建立一个给定排序顺序的查询,选择具有最高排序顺序的行。 例子: 好的,假设我为已知的排序顺序(id 4)输入了5,我需要它返回ID为3的行。由于不能保证sort_order是连续的,所以我不能只选择known_sort_order + 1。 谢谢! 问题答案: 似乎太简单了,但是看起来像您所需要的:

  • 问题内容: 我的SQL代码如下: 等效的linq表达式是什么? 问题答案: 我第一次尝试在 来源 LINQ to SQL中的NOT IN子句

  • 问题内容: 我有一个Oracle表,其中包含一组范围(RangeA和RangeB)。这些列是varchar,因为它们可以同时容纳数字和字母数字值,如以下示例所示: 我需要执行一个查询,该查询仅返回具有数值的记录,并对该查询执行Count。到目前为止,我已经尝试过使用两个不同的查询来做到这一点,但没有任何运气: 查询1: 查询2: 子查询工作正常,因为我得到的两个记录都只有数字值,但是查询的COUN