Actionbarsherlock searchview:setOnQueryTextListener

2023-12-06

我正在尝试使用 ActionBarSherlock 的搜索视图在列表中创建一个过滤器。我目前拥有的代码如下:

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    getSupportMenuInflater().inflate(R.menu.building_search, menu);

    SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());

    SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() 
    {
        public boolean onQueryTextChange(String newText) 
        {
            // this is your adapter that will be filtered
            listAdapter.getFilter().filter(newText);
            return true;
        }

        public boolean onQueryTextSubmit(String query) 
        {
            // this is your adapter that will be filtered
            listAdapter.getFilter().filter(query);
            return true;
        }
    };
    searchView.setOnQueryTextListener(queryTextListener);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.search:
            onSearchRequested();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

这些是我的进口:

import android.os.Bundle;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import be.ugent.zeus.hydra.AbstractSherlockActivity;
import be.ugent.zeus.hydra.R;
import be.ugent.zeus.hydra.data.caches.AssociationsCache;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.widget.SearchView;
import com.dd.plist.NSArray;
import com.dd.plist.NSDictionary;
import com.dd.plist.NSString;
import com.dd.plist.XMLPropertyListParser;
import com.emilsjolander.components.stickylistheaders.StickyListHeadersListView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.logging.Level;
import java.util.logging.Logger;

大部分功能都有效:在我的操作栏中,我得到一个搜索图标,该图标可单击并展开搜索视图。然而,不起作用的是实际的听众。我在这两种方法中都放置了断点,但是当我调试时,什么也没有发生。该程序没有中断,也没有任何内容被过滤,我不明白为什么。

有人有什么想法吗?

提前致谢。


这就是我使用 ActionBarSherlock 实现搜索的方式:

在res/menu文件夹下的menu.xml中,我添加了一个图标:

    <item android:id="@+id/search"
      android:title="@string/search_title"
      android:icon="@drawable/ic_search"
      android:showAsAction="collapseActionView|ifRoom" 
      android:actionViewClass="com.actionbarsherlock.widget.SearchView"/>

然后,我创建了一个类,负责接收操作搜索查询并呈现数据:

    public class SearchActivity extends SherlockFragmentActivity{

    @Override
        protected void onCreate(Bundle savedInstanceState) {
       Log.d(TAG, "This is the search view activity");
       // TODO Auto-generated method stub
       super.onCreate(savedInstanceState);
       setContentView(R.layout.search_result_layout);
            }


    private void handleIntent(Intent intent){
        if(Intent.ACTION_SEARCH.equals(intent.getAction())){
        searcdhQuery = intent.getStringExtra(SearchManager.QUERY);
        //here we shall do e search..
        Log.d(TAG, "This is the search query:" + searcdhQuery);

                    //This is the asynctask query to connect to the database...
        String[] value = {searcdhQuery};
        SearchQuery searchQuery = new SearchQuery();
        searchQuery.execute(value);
        }
        }

            @Override
        protected void onNewIntent(Intent intent) {
         // TODO Auto-generated method stub
         super.onNewIntent(intent);
         handleIntent(intent);
        }
        }

在清单中,此活动包含在搜索和查看过滤器中,如下所示:

    <activity android:name=".SearchActivity"
        android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>
        <meta-data 
            android:name="android.app.searchable"
            android:resource="@xml/searchable"/>
    </activity>

另外,在清单中,不要忘记应用程序中显示活动默认搜索的元数据,如下所示:

    <meta-data android:name="android.app.default_searchable"
                    android:value=".SearchActivity" />

最后在 onCreateOptionsMenu 中,确保通过将搜索配置与搜索服务关联来添加搜索配置:

    //associating the searchable configuration with the search service...
    SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView)menu.findItem(R.id.search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

onOptionsItemSelected 方法中不需要任何内容​​。

这对我来说非常有效。如果您需要更多详细信息,请从搜索 查看演示在actionBar中夏洛克和关于设置搜索界面的开发人员教程.

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Actionbarsherlock searchview:setOnQueryTextListener 的相关文章

  • 使用workmanager时Firestore脱机持久性错误

    我正在使用一个WorkManger定期从我的中检索信息Firestore当应用程序处于后台和前台时的数据库 此信息用于根据状态更新 UI 因此不同的状态会添加或删除 UI 的不同部分 第一次运行时效果很好 但是 一旦应用程序处于后台并且Wo
  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android SIP 来电使用带有广播接收器的服务

    大家好 其实我正在尝试创建一个应用程序 支持基于 SIP 通过互联网进行音频呼叫 这里使用本机 sip 我遇到了来电问题 我已经完成了服务的注册部分 但是在接听电话时我无法接听电话 请帮助我 Service file package exa
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript

随机推荐

  • Aws-Amplify:manifest.json 和 env.json 加载 index.html

    我正在构建的React应用程序有一个manifest json和一个env json 如下所示 但是 当我使用 AWS Amplify 将网站发布到 S3 存储桶时 manifest json 和 env json 会加载我的 index
  • Cocoa Pods 需要完全重新安装

    的背景 我对来自 NET 环境的 Unix 有点陌生 但我现在了解的足够多 足以让我陷入麻烦 我正在使用的现有代码使用 Cocoapods 因此我尝试安装 Cocoapods 最初 当我安装它时 它失败了 说它需要更新版本的 Ruby 为了
  • 在多线程应用程序中使用 libmysqlclient

    我正在 Linux 平台上构建一个 C 应用程序 我需要使用 libmysqlclient 来连接数据库 我下载了Linux源代码包mysql connector c 6 0 2 tar gz 我按照说明编译了它 我得到以下库 libmys
  • 检索包含指定点的矩形集

    我不知道如何以表演的方式实现这一点 所以我决定问你们 我有一个矩形列表 实际上只是 atm 正方形 但稍后我可能必须迁移到矩形 所以让我们坚持使用它们并使其更通用 在二维空间中 每个矩形由两个点指定 矩形可以重叠 我不太关心设置时间 因为矩
  • 如何取消文件上传?

    我想知道如何通过表单取消文件上传multipart form data 那可能吗 将表单发布到隐藏iframe 改变iframe src当你想取消时 浏览器将重新加载iframe并取消之前的POST对其提出请求
  • 边框和网格布局

    Hi everyone I have a problem If anyone can help it would be great I am using border and gridlayout and I am trying to sp
  • 如何使用 X509SecurityKey 进行 Asp.Net Core JWT 验证?

    我如何 可以 使用 X509SecurityKey 进行 Asp Net Core JWT 验证 我当前的代码大致是 X509SecurityKey signingKey null using X509Store store new X50
  • 可以发送到 WCF 服务的数据量是否有大小限制?

    可以发送到 WCF 服务的数据量是否有大小限制 我发送了一个对象数组 当数组达到一定大小时 我收到 404 错误请求异常 这是 httpHosting 的限制吗 另一种类型的托管效果会更好吗 有最大数组大小和最大内容大小 这是用于增加大小的
  • 使用 setcs 命令时 Clearcase 配置规范的行为很奇怪

    我将配置规范存储在文本文件中 以下为内容 element CHECKEDOUT element lost found none element My MYF R2 1 0 9 5179 element My My 2 1 0 13 4875
  • 如何动态获取当前的base URL? [复制]

    这个问题在这里已经有答案了 我正在尝试在我的网络项目中创建一个链接 在链接文本中显示链接 url 例如 如果我正在处理本地主机的示例项目 我希望 example jsp 页面的链接看起来像http localhost 8081 Exampl
  • 三元运算符左结合性[重复]

    这个问题在这里已经有答案了 在 PHP 手册中 我发现以下 用户贡献的注释 在 操作员 下 请注意 在 php 中 三元运算符 具有左结合性 这与 C 和 C 中的右结合性不同 您不能编写这样的代码 正如您可能在 C C 中习惯的那样
  • 使用 AppleScript 设置文件标签

    我正在尝试使用以下代码使用 AppleScript 在文件上放置彩色标签 set theFile to HDD Path to the file ext tell application Finder set label of file t
  • 将 UWP 应用程序连接到远程 SQL Server 2008 提供程序:TCP 提供程序,错误:0

    System Data SqlClient SqlException 已成功与服务器建立连接 但在登录过程中发生错误 提供程序 TCP 提供程序 错误 0 操作成功完成 我正在尝试使用 UWP 应用程序连接到 SQL Server 2008
  • 使用变量替换 shell 脚本中的字符串

    我正在使用下面的代码来替换字符串 在 shell 脚本中 echo LINE sed e s 12345678 replace g 但它正在被取代 replace而不是该变量的值 有人能告诉我出了什么问题吗 如果你想解读 replace 您
  • 如何将这个特定的 json 字符串转换为 python 字典?

    我如何转换这个字符串 gt string name sam 像这样进入 python 字典 gt data name sam In 1 import json In 2 json loads name sam Out 2 u name u
  • JavaScript 使用reduce 从数组创建带有计数的对象

    我正在尝试解决这个小问题 我需要在哪里使用reduce创建一个包含每个项目计数的对象 我以为我明白了reduce有效 使用一个函数将多个值减少到一个 但我不知道这是如何工作的 有什么想法或建议吗 对此 我真的非常感激 var people
  • 使用 MFMailComposer 通过电子邮件发送 CSV 文件

    我想使用带有 csv 扩展名的 NSString 已创建 创建一个文件 然后使用 UIMessage 框架通过电子邮件发送该文件 那么有人可以向我展示创建文件的代码 带有 csv 扩展名和 NSString 的内容 然后如何将其附加到 MF
  • react-native:共享 api,将 base64 字符串而不是图像传递给 WhatsApp

    嘿 我正在努力通过 WhatsApp 分享 Base64 图像 在 iOS 和 Android 中 共享的是实际的基数 64 而不是图像 如果我使用 iMessage 或电子邮件 iOS base64 图像将按预期转换并显示 在 Andro
  • 使用内嵌引号将 JSON 导入到 R 中

    我正在尝试将以下 JSON 文件 my file json 读入 R 其中包含以下内容 id 484 comment They call me Bruce 使用 jsonlite 包 0 9 12 出现以下错误 library jsonli
  • Actionbarsherlock searchview:setOnQueryTextListener

    我正在尝试使用 ActionBarSherlock 的搜索视图在列表中创建一个过滤器 我目前拥有的代码如下 Override public boolean onCreateOptionsMenu final Menu menu getSup