我正在尝试在主要活动的搜索视图中显示提示文字。 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;
}
}
提前致谢
答案 0 :(得分:24)
要添加SearchView提示文本,请使用以下代码:
search.setQueryHint("Custom Search Hint");
答案 1 :(得分:6)
尝试使用
app:queryHint="@string/search"
app:defaultQueryHint="@string/search"
答案 2 :(得分:4)
这对我有用:
<SearchView
.
.
.
android:queryHint="Search... "
android:iconifiedByDefault="false"
如果您希望提示以SearchView的非活动状态显示,那么添加android:iconifiedByDefault="false"
也很重要。如果不是true
。
答案 3 :(得分:1)
对我而言,没有解决方案不起作用。
我得到了searchview的edittext的实例,然后,我为此设置了一个提示。
EditText et= (EditText) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
et.setHint(context.getString(R.string.search));
答案 4 :(得分:0)
根据Create a Searchable Configuration
如果您在应用栏中使用SearchView
作为操作视图,则应通过调用SearchView
将可搜索配置与setSearchableInfo(SearchableInfo)
相关联。
SearchManager sm = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(sm.getSearchableInfo(getComponentName()));