无法在actionbar中获取searchview我是java和android开发的新手; 我一直在开发一个应用程序,我需要一个带有操作栏的操作栏SearchView。我看过谷歌的例子,但我无法让它工作。我一定做错了,我即将放弃应用程序开发:DI已经搜索但我没有找到任何有用的东西。也许你们可以帮助我:)问题:我得到的搜索视图应该打开,但在此之后什么也没发生,我注意到我的searchManager.getSearchableInfo(getComponentName())返回null。另外,我给出的提示没有显示在我的搜索框中,这让我相信应用程序可能无法找到我的搜索文件?够了:)MainActivity.javapublic class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
// Get the SearchView and set the searchable configuration
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
return true;
}}searchable.xml<?xml version="1.0" encoding="utf-8"?><searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="@string/search_hint"
android:label="@string/app_label"></searchable>Androidmanifest<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.searchapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name=".SearchableActivity" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>这里是引用项目的链接,如果有人帮我这个,我将永远感激不尽!源代码
3 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
Android指南明确指出:
// Assumes current activity is the searchable activity searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
在你的情况下,这是不正确的。因为您不想在MainActivity中搜索,而是在SearchableActivity中搜索。这意味着您应该使用此ComponentName而不是getComponentName()方法:
ComponentName cn = new ComponentName(this, SearchableActivity.class);searchView.setSearchableInfo(searchManager.getSearchableInfo(cn));
- 3 回答
- 0 关注
- 422 浏览
添加回答
举报
0/150
提交
取消