为什么我会得到: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"/>

+0

我猜'findItem'可能会返回空项目。 – egoldx

尝试用替换

android:actionViewClass="android.widget.SearchView"

app:actionViewClass="android.widget.SearchView"