不推荐使用getActionView吗?

时间:2017-07-25 14:22:43

标签: java android kotlin

今天我决定将我的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()仍在交叉,所以我根本不理解......

如果你能帮助我,我将非常高兴:)谢谢!

4 个答案:

答案 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)
}