web-dev-qa-db-fra.com

L'indice SearchView ne s'affiche pas

J'essaie d'afficher du texte de conseil dans une vue de recherche dans mon activité principale. OnqueryTextSubmit lance une autre activité appelée SearchResultsActivity qui affichera les résultats de la requête. Mon problème est que je ne peux pas afficher le texte de conseil. Mon code consultable.xml

<searchable xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:hint="@string/search_hint"
        Android:label="@string/app_name"
/>

et le code manifeste

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme">
    <activity Android:name=".MainActivity">
        <intent-filter>
            <action Android:name="Android.intent.action.SEARCH"/>
            <action Android:name="Android.intent.action.MAIN"/>

            <category Android:name="Android.intent.category.LAUNCHER"/>
        </intent-filter>

        <meta-data
            Android:name="Android.app.default_searchable1"
            Android:value=".SearchResultsActivity"
            Android:resource="@xml/searchable"/>
    </activity>
    <activity Android:name=".SearchResultsActivity">
        <meta-data Android:name="Android.app.searchable"
                   Android:resource="@xml/searchable">
        </meta-data>
    </activity>
</application>
</manifest>

et enfin mon code onQueryTextSubmit

@Override
        public boolean onQueryTextSubmit(String query)
        {

            Anniversaries tempResults;
            tempResults = mainAnniversariesManager.searchManager.searchAnniversaries(query);

            if (tempResults.entries.size() == 0)
            {
                snackbar = Snackbar.make(findViewById(R.id.coordinator), getString(R.string.no_results_found) + query, Snackbar.LENGTH_INDEFINITE);
                snackbar.show();
                return true;
            } else
            {
                snackbar = null;
                if (!searchView.isIconified())
                {
                    searchView.setIconified(true);
                }
                menuItem.collapseActionView();

                Intent intent=new Intent(getApplicationContext(),SearchResultsActivity.class);
                Bundle args=new Bundle();
                args.putSerializable("serialized_Anniversaries",tempResults);
                intent.putExtra("args",args);
                startActivity(intent);

                return false;
            }
        }

Merci d'avance

14
yian.athanasiadis

Pour ajouter du texte d'indication SearchView, utilisez le code suivant:

search.setQueryHint("Custom Search Hint");
26
AmanSinghal

essayez d'utiliser app:queryHint="@string/search" app:defaultQueryHint="@string/search"

8
Alexander

pour moi, aucune des solutions n'a fonctionné.

J'obtiens une instance de l'edittext de searchview et ensuite, je mets un indice pour cela.

EditText et= (EditText) mSearchView.findViewById(Android.support.v7.appcompat.R.id.search_src_text);
et.setHint(context.getString(R.string.search));
1
saleh sereshki

Selon Créer une configuration consultable

Si vous utilisez un SearchView comme vue d'action dans la barre d'application, vous devez associer la configuration consultable au SearchView en appelant setSearchableInfo(SearchableInfo).

SearchManager sm = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(sm.getSearchableInfo(getComponentName()));
0
Chaos