web-dev-qa-db-ja.com

getActionViewは非推奨ですか?

今日、私はAndroid app from Java to 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()はまだ交差しているので、まったく理解できません...

あなたが私を助けることができるならば、私はとても幸せです:)ありがとう!

23
Ross Thomas

Javadocによると:

GetActionView()を直接使用します。

したがって、あなたがすべきことは:

val searchView = searchItem.getActionView() as SearchView
48
Egor

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;
6
Ashish Kumar

Android developer websiteで提供されているものと同じものを使用できます。

@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;
}
3
JoboFive

次のように、actionViewをKotlinで直接使用します。

  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)
}
0
Harry Zhang