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
Pour ajouter du texte d'indication SearchView, utilisez le code suivant:
search.setQueryHint("Custom Search Hint");
essayez d'utiliser app:queryHint="@string/search" app:defaultQueryHint="@string/search"
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));
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()));