Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/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 如何在片段(Kotlin)中使用componentName?_Android_Kotlin - Fatal编程技术网

Android 如何在片段(Kotlin)中使用componentName?

Android 如何在片段(Kotlin)中使用componentName?,android,kotlin,Android,Kotlin,我正试图用list在两个不同的片段上实现搜索功能。当我尝试使用下面的代码时,它抛出带有componentName的未解析引用。 如何解决这个问题 ListFragment.kt override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.note_menu, menu) val searchManager = context?.getS

我正试图用list在两个不同的片段上实现搜索功能。当我尝试使用下面的代码时,它抛出带有componentName的未解析引用。 如何解决这个问题

ListFragment.kt

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
        inflater.inflate(R.menu.note_menu, menu)
        val searchManager = context?.getSystemService(Context.SEARCH_SERVICE) as SearchManager

searchView = menu?.findItem(R.id.search_ic)
    ?.actionView as SearchView
searchView.setSearchableInfo(searchManager
    .getSearchableInfo(componentName))
searchView.maxWidth = Integer.MAX_VALUE
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
    override fun onQueryTextSubmit(query: String?): Boolean {
        dailyAdapter.filter.filter(query)
        return false
    }

    override fun onQueryTextChange(newText: String?): Boolean {
        dailyAdapter.filter.filter(newText)
        return false
    }

})
return true

}

问题是您不能使用片段中的活动组件。要使用活动的组件,必须使用requireActivity()方法。 所以你的代码应该是这样的

 searchView.setSearchableInfo(searchManager.getSearchableInfo(requireActivity().componentName))