メインアクティビティの検索ビューにヒントテキストを表示しようとしています。 onqueryTextSubmitは、クエリの結果を表示するSearchResultsActivityという別のアクティビティを起動します。私の問題は、ヒントテキストを表示できないことです。 searchable.xmlコード
<searchable xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:hint="@string/search_hint"
Android:label="@string/app_name"
/>
およびマニフェストコード
<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>
最後に私の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;
}
}
前もって感謝します
SearchViewヒントテキストを追加するには、次のコードを使用します。
search.setQueryHint("Custom Search Hint");
app:queryHint="@string/search" app:defaultQueryHint="@string/search"
を使用してみてください
私にとって、解決策はどれもうまくいきませんでした。
Searchviewの編集テキストのインスタンスを取得し、そのためのヒントを設定します。
EditText et= (EditText) mSearchView.findViewById(Android.support.v7.appcompat.R.id.search_src_text);
et.setHint(context.getString(R.string.search));
アプリバーのアクションビューとしてSearchView
を使用している場合は、setSearchableInfo(SearchableInfo)
を呼び出して、検索可能な設定をSearchView
に関連付ける必要があります。
SearchManager sm = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(sm.getSearchableInfo(getComponentName()));