Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未解析的引用:搜索\u src\u文本 供参考_Android_Searchview_Dynamic Feature Module - Fatal编程技术网

Android 未解析的引用:搜索\u src\u文本 供参考

Android 未解析的引用:搜索\u src\u文本 供参考,android,searchview,dynamic-feature-module,Android,Searchview,Dynamic Feature Module,这是一个显示问题的分支(注意项目不完整)。运行它,您将看到编译时错误未解析引用:search\u src\u text 我想做的是: 我想从SearchView向我的ViewModel提交文本。提交文本时,我使用该文本执行查询 你可能在想什么: “只需使用一个OnQueryTextListener” 如果文本为null/空,OnQueryTextListener将不会提交文本。我使用null/empty大小写搜索数据库中的所有内容。所以这不起作用 我尝试过的工作: 过去,我在SearchVie

这是一个显示问题的分支(注意项目不完整)。运行它,您将看到编译时错误
未解析引用:search\u src\u text

我想做的是: 我想从SearchView向我的ViewModel提交文本。提交文本时,我使用该文本执行查询

你可能在想什么: “只需使用一个
OnQueryTextListener

如果文本为null/空,
OnQueryTextListener
将不会提交文本。我使用null/empty大小写搜索数据库中的所有内容。所以这不起作用

我尝试过的工作: 过去,我在SearchView中手动搜索了
SearchAutoComplete
视图的id。您可以这样找到它:

val searchPlate:SearchView.SearchAutoComplete?=search\u view.findViewById(R.id.search\u src\u text)
然后,您只需附加一个
OnEditorActionListener
并监听IME操作,就可以开始了:

searchPlate.setOnEditorActionListener{v,actionId,事件->
如果(actionId==EditorInfo.IME\u ACTION\u未指定
||actionId==EditorInfo.IME\u操作\u搜索){
val searchQuery=v.text.toString()
viewModel.setQuery(searchQuery)
viewmodel.executeSearch()
}
真的
}
通常这很好用。唯一的区别(我可以看到)是这次我使用了一个动态功能模块。当尝试访问
R.id.search\u src\u text
时,它抛出以下编译时错误:

Unresolved reference: search_src_text
是的,布局在动态功能模块/res/目录中。

代码 1。布局中的SearchView


2。获取对搜索\u src\u文本的引用

val searchPlate:SearchView.SearchAutoComplete?=search\u view.findViewById(R.id.search\u src\u text)
运行项目将产生错误
未解决的引用:search\u src\u text

另一件奇怪的事: 我在视图层次结构中循环,直到找到SearchAutoComplete,然后附加侦听器,它工作得很好

搜索视图.children.withIndex()中((index1,child)的
{
printLogD(“ListFragment”,“${index1},${child}”)
对于(子对象作为视图组)中的((index2,child2)。children.withIndex()){
printLogD(“ListFragment”,“T2:${index2},${child2}”)
如果(child2是视图组){
对于(child2作为视图组)中的((index3,child3)。childs.withIndex()){
printLogD(“ListFragment”,“T3:${index3},${child3}”)
如果(child3是视图组){
对于(child3作为视图组)中的((index4,child4)。childs.withIndex()){
printLogD(“ListFragment”,“T4:${index4},${child4}”)
if(child4是SearchView.SearchAutoComplete){
child4.setOnEditorActionListener{v,actionId,事件->
如果(actionId==EditorInfo.IME\u ACTION\u未指定
||actionId==EditorInfo.IME\u操作\u搜索){
val searchQuery=v.text.toString()
printLogD(“NoteList”,“SearchView:(键盘或箭头)正在执行搜索…:${searchQuery}”)
setQuery(searchQuery).let{
viewModel.loadFirstPage()
}
}
真的
}
打破
}
}
}
}
}
}
}
如有任何见解,将不胜感激

val searchPlate: SearchView.SearchAutoComplete? = search_view.findViewById(androidx.appcompat.R.id.search_src_text)