不推荐使用getActionView吗?

Ros*_*mas 24 java android kotlin

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

val searchItem = menu.findItem(R.id.action_search)
val searchView = MenuItemCompat.getActionView(searchItem) as SearchView
Run Code Online (Sandbox Code Playgroud)

Android Studio告诉我:"'getActionView(MenuItem!):查看!' 不推荐使用.在Java中弃用"

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

所以我修改了我的代码:

val searchView = MenuItemCompat.getActionView() as SearchView
Run Code Online (Sandbox Code Playgroud)

getActionView()仍然交叉,所以我根本不明白......

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

Ego*_*gor 49

Javadoc说:

直接使用getActionView().

因此,你应该做的是:

val searchView = searchItem.getActionView() as SearchView
Run Code Online (Sandbox Code Playgroud)


小智 8

根据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;
Run Code Online (Sandbox Code Playgroud)

  • 如果您可以解释自己在那做的事,那就更好了。 (2认同)