为什么我会得到:null不能转换为非null类型android.widget.SearchView?
问题描述:
我试图在我的菜单栏上实现“搜索小部件”..但我得到的错误:“null不能转换为非空类型android.widget.SearchView”..我做了尝试解决问题,但没有结果..为什么我会得到:null不能转换为非null类型android.widget.SearchView?
你能给我一些提示吗?
的minSdkVersion 17 targetSdkVersion 26
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu, menu)
val searchView = menu!!.findItem(R.id.app_bar_search).actionView as SearchView
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
searchView.setSearchableInfo(searchManager.getSearchableInfo(componentName))
searchView.setOnQueryTextListener(object: SearchView.OnQueryTextListener{
override fun onQueryTextSubmit(p0: String?): Boolean {
return false
}
override fun onQueryTextChange(p0: String?): Boolean {
return false
}
})
<item
android:id="@+id/app_bar_search"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_search_black_24dp"
android:title="Search"
app:showAsAction="always"/>
答
尝试用替换
android:actionViewClass="android.widget.SearchView"
app:actionViewClass="android.widget.SearchView"
我猜'findItem'可能会返回空项目。 – egoldx