Kotlin Android扩展和菜单
是否有任何方法可以使用合成属性而不是使用findItem方法访问菜单项\u搜索片段照片库中定义的菜单项版面Kotlin Android扩展和菜单,kotlin,kotlin-android-extensions,Kotlin,Kotlin Android Extensions,是否有任何方法可以使用合成属性而不是使用findItem方法访问菜单项\u搜索片段照片库中定义的菜单项版面 override fun onCreateOptionsMenu(menu: Menu, menuInflater: MenuInflater) { super.onCreateOptionsMenu(menu, menuInflater) menuInflater.inflate(R.menu.fragment_photo_gallery, menu) //is
override fun onCreateOptionsMenu(menu: Menu, menuInflater: MenuInflater) {
super.onCreateOptionsMenu(menu, menuInflater)
menuInflater.inflate(R.menu.fragment_photo_gallery, menu)
//is there a way to access searchItem using synthetic properties?
val searchItem = menu.findItem(R.id.menu_item_search)
}
MenuInflater
的用途与LayoutInflater
完全不同
尽管两者的名称中都有“充气器”部分,并且实现的方法都被命名为“充气()”,但它们做的事情完全不同<代码>菜单充气器充气菜单
s,其中布局充气器
充气视图
s
是为了简化Android视图的使用而创建的,而不是Android菜单或任何具有inflate()
方法的东西
长话短说-不可能将KAE与Android菜单一起使用。您看过吗?我目前没有在Android上使用Kotlin,但据我所知,您只需添加一个导入,如
import kotlinx.Android.synthetic.main..*
,然后您就可以在活动代码中使用名为menu item\u search
的合成属性。是的,我确实有。您的“解决方案”仅适用于onCreate方法中的布局(您可以通过名称访问每个布局项)。菜单布局在OnCreateOptions菜单中膨胀,我无法使用其名称(合成变量)访问菜单项搜索。这是一个很好的解释