Rus*_*G.H 5 android android-fragments kotlin
我提出的问题与事件有关onQueryTextListener
,我将其声明为之前在 java 中使用过的,但是当我提交文本或更改文本时它不显示日志。
这是我的片段的代码:
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
}
}}
}
Run Code Online (Sandbox Code Playgroud)
请帮帮我。
谢谢
尝试将您的searching
方法更改为:
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
}
})
}
Run Code Online (Sandbox Code Playgroud)
我还没有测试过,但你的括号似乎有问题。我认为应该有()
而不是{}
您使用的方法onQueryTextListener
(与setOnQueryTextListener
我上面的代码相比)不能为我编译。你在那里使用任何扩展方法吗?也许该方法将一个函数String->()
作为参数,因此当您将 放入OnQueryTextListener
时,{}
您只是向该方法提供了一个 lambda 作为创建对象但从不使用它的参数。
归档时间: |
|
查看次数: |
4313 次 |
最近记录: |