为了账号安全,请及时绑定邮箱和手机立即绑定

无法在actionbar中获取searchview

无法在actionbar中获取searchview

凤凰求蛊 2019-08-26 17:24:25
无法在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));


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 422 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信