onOptionsItemSelected(item: MenuItem) 没有为项目调用 app:actionProviderClass

onOptionsItemSelected(item: MenuItem) not called for an item app:actionProviderClass

onOptionsItemSelected(item: MenuItem) 不会在使用 AndroidX 的项目中点击带有 app:actionProviderClass 的菜单项时调用。

知道为什么吗?

<item
        android:id="@+id/open_map"
        android:orderInCategory="100"
        android:title="@string/map"
        app:showAsAction="always"/>

<item
        android:id="@+id/add_player"
        android:orderInCategory="100"
        android:title="@string/add_player"
        android:icon="@drawable/ic_add_white_24dp"
        app:showAsAction="ifRoom"/>

<item
        android:id="@+id/share"
        android:orderInCategory="100"
        android:title="@string/share"
        app:actionProviderClass="androidx.appcompat.widget.ShareActionProvider"
        app:showAsAction="ifRoom"/>

您使用了app:actionProviderClass="androidx.appcompat.widget.ShareActionProvider"

使用与搜索操作视图相同的视图

public 布尔 onCreateOptionsMenu(菜单菜单){

getMenuInflater().inflate(R.menu.example, menu);

this.menu = menu;

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

    SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

    SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();

    search.setSearchableInfo(manager.getSearchableInfo(getComponentName()));

    search.setOnQueryTextListener(new OnQueryTextListener() { 

        @Override 
        public boolean onQueryTextChange(String query) {

            loadHistory(query);

            return true; 

        } 

    });

}

return true;

}