How can I complete my constructor?

家住魔仙堡 提交于 2020-01-07 04:38:09

问题


I have this code:

override fun onCreateOptionsMenu(menu: Menu): Boolean {
        menuInflater.inflate(R.menu.menu_search, menu)
        val searchItem = menu.findItem(R.id.action_search)
        val searchView = MenuItemCompat.getActionView(searchItem) as SearchView
        //*** setOnQueryTextFocusChangeListener ***
        searchView.setOnQueryTextFocusChangeListener(object : View.OnFocusChangeListener() {

            override fun onFocusChange(v: View, hasFocus: Boolean) {

            }
        })

        searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {

            override fun onQueryTextSubmit(query: String): Boolean {

                return false
            }

            override fun onQueryTextChange(searchQuery: String): Boolean {
                adapter!!.filter(searchQuery.toString().trim { it <= ' ' })
                tvListAnimal.invalidate()
                return true
            }
        })


        return true
    }

The problem comes from this part:

searchView.setOnQueryTextFocusChangeListener(object : View.OnFocusChangeListener() {

   override fun onFocusChange(v: View, hasFocus: Boolean) {

   }
})

When I try to run with Android Studio, I get this message:

'This class does not have a constructor.'

I try to write like this:

searchView.setOnQueryTextFocusChangeListener(object : View.OnFocusChangeListener {

   override fun onFocusChange(v: View, hasFocus: Boolean) {

   }
})

It works but the app crashes, because I remove the parenthesis after View.OnFocusChangeListener.

I have no idea how to complete this. Someone has an idea?

来源:https://stackoverflow.com/questions/45309129/how-can-i-complete-my-constructor

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!