【问题标题】:How can we search a line of text from a .txt file?我们如何从 .t​​xt 文件中搜索一行文本?
【发布时间】:2021-08-19 17:16:17
【问题描述】:

我正在做一个有skills.txt 文件的项目。现在我必须创建一个SearchView,通过输入实时搜索技能。我不知道我们是怎么做到的。于是搜了一下,找到了this之类的方法。

但我不确定如何在搜索视图中使用它来获得这样的期望结果 [来源:LinkedIn]

【问题讨论】:

  • 您可以拆分行并过滤字符 onTextChange

标签: android kotlin full-text-search linkedin txt


【解决方案1】:

在你的 Activity onCreationOptionsMenu 中写下这个。

override fun onCreateOptionsMenu(menu: Menu): Boolean {

    menuInflater.inflate(R.menu.menu, menu)
    val search = menu.findItem(R.id.search)
    val searchView = search.actionView as androidx.appcompat.widget.SearchView
    searchView.setOnQueryTextListener(object : 
    androidx.appcompat.widget.SearchView.OnQueryTextListener {
        override fun onQueryTextSubmit(query: String?): Boolean {
            if (query != null && query.isNotEmpty()) {
                viewModel.searchResult(query)
            }
            return false
        }

        override fun onQueryTextChange(newText: String?): Boolean {
            return true
        }
    })
    return super.onCreateOptionsMenu(menu)}

在你的视图模型中写下这个。一次

 private val _searchResultData = SafeMediatorLiveData(initialValue = SearchResultResponse(emptyList()))

fun searchResult(skillSetToSearch: String) {
     // val arrayList = callFiletoSearchString(skillSetToSearch)
    _searchResultData.update(searchListResponse = arrayList)

 }

SafeMediatorLive 数据类将如下所示

class SafeMediatorLiveData<T : Any>(initialValue: T) : MediatorLiveData<T>() {

    init {
        value = initialValue
    }

    override fun getValue(): T = super.getValue()!!
}

【讨论】:

  • 对不起,我没听明白。我看不到文本文件,而且不清楚。那你能详细解释一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
  • 2016-10-07
  • 2014-03-17
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多