getActionView 已弃用?

2022-09-01 07:17:11

今天,我决定将我的Android应用程序从Java翻译成Kotlin!:)但是当我输入这个时,我非常惊讶:

val searchItem = menu.findItem(R.id.action_search)
val searchView = MenuItemCompat.getActionView(searchItem) as SearchView

Android Studio告诉我:“'getActionView(MenuItem!):View!'已被弃用。在 Java 中已弃用”

所以在问你解决方案之前,我问谷歌什么是解决方案,我相信我找到了解决方案:“直接使用getActionView()。”

所以我修改了我的代码,就像这样:

val searchView = MenuItemCompat.getActionView() as SearchView

但仍然交叉,所以我完全不明白...getActionView()

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


答案 1

Javadoc 说:

直接使用 getActionView()。

因此,你应该做的是:

val searchView = searchItem.getActionView() as SearchView

答案 2

正如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;

推荐