L'ajout de SearchView du Fragment

Essayez d'inclure un searchview dans l'actionbar. Pour cela, j'ai effectué les opérations suivantes:

Créé MenuSearch.xml dans le menu dossier comme indiqué ci-dessous:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
   <item
    android:id="@+id/action_search"
    android:actionViewClass="Android.Support.V7.Widget.SearchView"
    android:icon="@android:drawable/ic_menu_search"
    android:showAsAction="always"
    android:title="Search"/>

</menu>

Inclus la méthode OnCreateOptionsMenu dans le fragment:

public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
    {
        inflater.Inflate(Resource.Menu.MenuSearch, menu);
        base.OnCreateOptionsMenu(menu, inflater);
        var searchManager = (SearchManager) this.Activity.GetSystemService(Context.SearchService);
        searchView = (SearchView) (menu.FindItem(Resource.Id.action_search).ActionView);
        searchView.SetSearchableInfo(searchManager.GetSearchableInfo(Activity.ComponentName));

    }

Et j'ai mis HasOptionsMenu = true; dans oncreate du fragment.

Avec le code ci-dessus, j'obtiens de pointeur null dans la ligne searchView.SetSearchableInfo... . Pas sûr de savoir pourquoi cela se produit, même si tout semble être correct et en place.

Basé sur des suggestions pour les résoudre problème similaire, j'ai aussi essayé l'option en dessous pour searchview.

        var item = menu.FindItem (Resource.Id.action_search);
        var searchItem = MenuItemCompat.GetActionView(item);
        searchView = searchItem.JavaCast<Android.Support.V7.Widget.SearchView>();
        searchView.SetSearchableInfo(searchManager.GetSearchableInfo(Activity.ComponentName));

Mais encore une fois, je reçois searchView comme null.

Maintenant que j'ai essayé toutes les options possibles, je suis paumé pourquoi searchview devient nulle.

Toute aide est très appréciée.

OriginalL'auteur user264953 | 2015-12-15