SearchView 提示未显示
SearchView hint not showing
我正在尝试在主 Activity 的搜索视图中显示提示文本。 onqueryTextSubmit 启动另一个名为 SearchResultsActivity 的 activity,它将显示查询结果。我的问题是我无法显示提示文本。我的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"
根据Create a Searchable Configuration
如果您使用 SearchView
作为应用栏中的操作视图,您应该通过调用 setSearchableInfo(SearchableInfo)
将可搜索配置与 SearchView
相关联。
SearchManager sm = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(sm.getSearchableInfo(getComponentName()));
对我来说,没有一个解决方案不起作用。
我得到了 searchview 的 edittext 的一个实例,然后,我为此设置了一个提示。
EditText et= (EditText) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
et.setHint(context.getString(R.string.search));
使用 XML 配置。
这对我有用:
<SearchView
.
.
.
android:queryHint="@string/search_hint"
android:iconifiedByDefault="false" />
如果希望提示在 SearchView 的 非活动状态 中可见,请将 android:iconifiedByDefault
设置为 "false"
。
如果不需要,请将 android:iconifiedByDefault
设置为 "true"
。
我正在尝试在主 Activity 的搜索视图中显示提示文本。 onqueryTextSubmit 启动另一个名为 SearchResultsActivity 的 activity,它将显示查询结果。我的问题是我无法显示提示文本。我的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"
根据Create a Searchable Configuration
如果您使用 SearchView
作为应用栏中的操作视图,您应该通过调用 setSearchableInfo(SearchableInfo)
将可搜索配置与 SearchView
相关联。
SearchManager sm = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(sm.getSearchableInfo(getComponentName()));
对我来说,没有一个解决方案不起作用。
我得到了 searchview 的 edittext 的一个实例,然后,我为此设置了一个提示。
EditText et= (EditText) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
et.setHint(context.getString(R.string.search));
使用 XML 配置。
这对我有用:
<SearchView
.
.
.
android:queryHint="@string/search_hint"
android:iconifiedByDefault="false" />
如果希望提示在 SearchView 的 非活动状态 中可见,请将 android:iconifiedByDefault
设置为 "false"
。
如果不需要,请将 android:iconifiedByDefault
设置为 "true"
。