getActionView устарел?

Сегодня я решил перевести свое приложение для Android с Java на Kotlin! 🙂 Но я был очень удивлен, когда набираю это:

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

И Android Studio рассказала мне: «getActionView (MenuItem!): View!» устарел. Устаревший в Java "

Поэтому прежде, чем задать вам решение, я прошу Google, в чем заключается решение, и я полагал, что нашел решение: «Используйте getActionView () напрямую».

Поэтому я изменил свой код следующим образом:

 val searchView = MenuItemCompat.getActionView() as SearchView 

Но getActionView() по-прежнему пересекается, поэтому я совсем не понимаю …

Я буду очень рад, если вы сможете мне помочь 🙂 Спасибо!

Джавадок говорит:

Используйте getActionView () напрямую.

Следовательно, вам следует сделать следующее:

 val searchView = searchItem.getActionView() as SearchView 

Вы можете использовать то же самое, что и на веб-сайте разработчика Android.

 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the options menu from XML MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); // Get the SearchView and set the searchable configuration SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); // Assumes current activity is the searchable activity searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default return true; } 

Как было предложено эгором, вы можете сделать это

  getMenuInflater().inflate(R.menu.menu_items, menu); MenuItem menuItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) menuItem.getActionView(); search(searchView); return true;