今天我决定将我的Android应用程序从Java翻译成Kotlin! :)但是当我打字时我很惊讶:
val searchItem = menu.findItem(R.id.action_search)
val searchView = MenuItemCompat.getActionView(searchItem) as SearchView
Android Studio告诉我:“'getActionView(MenuItem!):查看!'不推荐使用。在Java中弃用“
所以在问你解决方案之前我向Google询问解决方案是什么,我相信我找到了解决方案:“直接使用getActionView()。”
所以我修改了我的代码:
val searchView = MenuItemCompat.getActionView() as SearchView
但getActionView()
仍在交叉,所以我根本不理解......
如果你能帮助我,我将非常高兴:)谢谢!
答案 0 :(得分:46)
Javadoc说:
直接使用getActionView()。
因此,你应该做的是:
val searchView = searchItem.getActionView() as SearchView
答案 1 :(得分:4)
正如egor建议的那样,你可以这样做
getMenuInflater().inflate(R.menu.menu_items, menu);
MenuItem menuItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) menuItem.getActionView();
search(searchView);
return true;
答案 2 :(得分:3)
您可以使用android developer网站
上提供的相同内容Angular/Typescript
答案 3 :(得分:0)
直接在Kotlin中使用actionView
,如下所示:
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.actions, menu)
val searchItem = menu?.findItem(R.id.action_search)
val searchView = searchItem?.actionView as SearchView
searchView.animate()
// TODO: Configure the search info and add any event listeners...
return super.onCreateOptionsMenu(menu)
}