Android 如何完成我的构造函数?

Android 如何完成我的构造函数?,android,constructor,kotlin,Android,Constructor,Kotlin,我有以下代码: 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 Sea

我有以下代码:

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
    }
当我尝试使用Android Studio运行时,我收到以下消息:

'此类没有构造函数。'

我试着这样写:

searchView.setOnQueryTextFocusChangeListener(object : View.OnFocusChangeListener {

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

   }
})
它可以工作,但应用程序崩溃,因为我删除了
View.OnFocusChangeListener
后面的括号


我不知道如何完成这个。有人有主意吗?

您的应用程序崩溃与此问题无关,您应该将stacktrace放在这里。您的第二个解决方案是创建
OnFocusChangeListener
实例的正确方法。由于您不是从这里的类继承,因此不需要调用超类的构造函数(这是
()
将标记的),您只需要在那里写下接口的名称。您应该发布崩溃产生的日志(可能作为一个单独的问题,因为问题不是关于构造函数的)。谢谢您,但在第一种情况下,我的意思是where
object:View.onfocuschangesetener()
我收到了消息“这个类没有构造函数”。因此,对于您来说,解决方案是删除括号?应用程序崩溃的事实与此无关?是的,你必须去掉括号,因为你是从一个接口继承的,而不是扩展一个类。是的,您的崩溃是由代码中的其他内容引起的。你应该看看stacktrace,看看是什么使你的应用程序崩溃,如果你想不出来,把这个错误作为一个单独的问题发布出来。是的,你完全正确!我要去邮局!非常感谢。
searchView.setOnQueryTextFocusChangeListener(object : View.OnFocusChangeListener {

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

   }
})