gpt4 book ai didi

android - SearchView.onQueryTextListener 在 Fragment (Kotlin) 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 13:05:22 24 4
gpt4 key购买 nike

我提出的问题是关于事件 onQueryTextListener,我声明它之前在 java 中使用它,但是当我提交文本或更改时它不显示日志正文。

这是我的 fragment 的代码:

Fragment_producto.kt

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val vG = inflater!!.inflate(R.layout.fragment_producto, container, false)
vG.recycler_producto.layoutManager = LinearLayoutManager(activity)
vG.recycler_producto.hasFixedSize()
vG.recycler_producto.adapter = Producto_Adapter(activity,this)

vG.fab_scan.onClick {
IntentIntegrator.forSupportFragment(this@Fragment_producto).initiateScan()
}

adapter = vG.recycler_producto.adapter as Producto_Adapter

metodos.attachSwipeCheck(vG.recycler_producto)
metodos.attachSwipeWrong(vG.recycler_producto)

setHasOptionsMenu(true)
return vG
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
Log.i(TAG,"Llego a create optionsmenu")
activity.menuInflater.inflate(R.menu.menu_producto,menu)
/*val menuItem = menu.findItem(R.id.menu_search)
val search = menuItem.actionView as SearchView
searching(search)*/
super.onCreateOptionsMenu(menu, inflater)
}

override fun onPrepareOptionsMenu(menu: Menu) {
val menuItem = menu.findItem(R.id.menu_search)
val search = menuItem.actionView as SearchView
searching(search)
super.onPrepareOptionsMenu(menu)
}

private fun searching(search: SearchView){
search.onQueryTextListener {object: SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
Log.i(TAG,"Llego al querysubmit")
return false
}

override fun onQueryTextChange(newText: String): Boolean {
Log.i(TAG,"Llego al querytextchange")
return true
}
}}
}

请帮帮我

谢谢

最佳答案

尝试将您的搜索方法更改为:

private fun searching(search: SearchView) {
search.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
Log.i(TAG,"Llego al querysubmit")
return false
}

override fun onQueryTextChange(newText: String): Boolean {
Log.i(TAG,"Llego al querytextchange")
return true
}
})
}

我还没有测试过,但你的括号看起来不太可靠。我认为应该有 () 而不是 {}

您正在使用 onQueryTextListener 的方法(与上面代码中的 setOnQueryTextListener 相比)不适合我编译。你在那里使用任何扩展方法吗?也许该方法采用函数 String->() 作为参数,因此当您将 OnQueryTextListener 放入 {} 时,您只是在给作为创建对象但从不使用它的参数的方法的 lambda。

关于android - SearchView.onQueryTextListener 在 Fragment (Kotlin) 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48712634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com