Android - 使用 Android 支持库时无法在 SearchWidget 中找到 TextView

2024-04-21

我使用以下代码片段在 SearchView 小部件中查找 TextView。

    int autoCompleteTextViewID = getResources().getIdentifier("android:id/search_src_text", null, null);
    mQueryTextView = (AutoCompleteTextView) searchView.findViewById(autoCompleteTextViewID);

然而当切换到android.support.v7.appcompat支持库,它不再起作用了。

我猜这是因为支持库不使用android:“android:id/search_src_text”的前缀, 但我不知道应该是什么。我试过

getResources().getIdentifier("android.support.v7.appcompat:id/search_src_text", null, null);

附:更多代码片段:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
        // this xml has funshion:actionViewClass="android.support.v7.widget.SearchView"
        getMenuInflater().inflate(R.menu.search_activity_actions_v7, menu);

        android.support.v7.widget.SearchView searchView = (android.support.v7.widget.SearchView) 
                MenuItemCompat.getActionView(menu.findItem(R.id.action_search_v7));
        if (searchView==null){
            FSLogcat.e(TAG, "searchView is null!");
        }else{
            SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
            searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
            searchView.setIconifiedByDefault(false);
            //searchView.requestFocus();
            searchView.setSubmitButtonEnabled(true);

            findSearchViewTextView(searchView);
            updateSearchViewText();
        }   

    return super.onCreateOptionsMenu(menu);
}

private void findSearchViewTextView(View searchView) {
    int autoCompleteTextViewID = getResources().getIdentifier("android:id/search_src_text", null, null);
    mQueryTextView = (AutoCompleteTextView) searchView.findViewById(autoCompleteTextViewID);
}

private void updateSearchViewText() {       
    if (mQueryTextView == null){
    } else {    
        mQueryTextView.setText(mQuery);
    }

}

请注意,SearchView 小部件使得很难将建议放入 TextView 中

//      in SearchAutoComplete
//        /**
//         * We override this method to avoid replacing the query box text when a
//         * suggestion is clicked.
//         */
//        @Override
//        protected void replaceText(CharSequence text) {
//        }

更新:在 SearchResultsActivity 将 SearchWidget 作为 SearchResultsActivity 后,就需要进行 SearchWidget 操作。虽然可能应该在下一次迭代中作为一个 Activity 来实现,但对于本周发布的当前版本,我只需要解决使用问题,即确保 SearchResultsActivity 上的 SearchWidget 内的 TextView 始终具有最新的查询。
也就是说,它是关键代码,如果它被破坏,它将被重写,但绝对不是通过克隆标准小部件。应该是其他方式。


正如佩德罗·奥利维拉建议的那样

mQueryTextView = (AutoCompleteTextView) searchView.findViewById(R.id.search_src_text);

一行刚刚工作。

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

Android - 使用 Android 支持库时无法在 SearchWidget 中找到 TextView 的相关文章

  • 反转 ArrayList 最简单的方法是什么?

    反转这个ArrayList的最简单方法是什么 ArrayList
  • 键入时将编辑文本中的每个单词大写

    我想在打字时将编辑文本中的每个单词大写 My XML
  • Cordova 插件包括 Android 库 (Gradle)

    我想包括这个 Androidlibrary https github com 50ButtonsEach fliclib android在 Cordova 插件中 该库本身由 Gradle 管理 如 Github 链接所示 图书馆的开发者只
  • Firebase 查询 Or'ing whereEqualTo 以获得可能值的列表

    我见过之前针对早期版本的 Firebase 提出过这个问题 https stackoverflow com questions 26700924 query based on multiple where clauses in fireba
  • 更改 Android Spinner 布局/设计

    我正在尝试修改设计Spinner http developer android com intl de reference android widget Spinner html小部件 我可以更改背景 但找不到更改右侧箭头图标的方法 有办法
  • 如何通过 Android 中的 Google Fit 集成获取用户信息

    我正在将 Google Fit 应用程序集成到 Android 应用程序中 以使用 SENSORS API 和 HISTORY API 跟踪健身数据 获取步数 如何使用该 API 获取用户信息 电子邮件或用户 ID 对你来说完美的例子 这可
  • 启动时的 Android pin 活动

    我有一个应用程序 它将自身注册为默认启动器 并在启动时自动固定自身 安装应用程序时这一切都正常 它会自行固定 并且只有后退按钮可见 问题是 当设备首次启动时 它无法正确固定 我多次看到一系列 屏幕固定 和 屏幕取消固定 的 toast 主页
  • firestore快照监听器生命周期和定价之间有什么关系?

    在我的活动中 我有一个字符串列表 这些字符串表示我想要附加快照侦听器的 Firestore 文档 我使用 Acivity ModelView 存储库结构 在活动的 onCreate 中 我向 ViewModelProvider 询问适当的
  • 拦截来自外部应用程序的意图

    假设我想开发一个以某种方式扩展的应用程序 让我说 合作 非常受欢迎的应用程序我显然无法控制 为了简单起见 我们还假设非常著名的应用程序作者不会发布更新来阻止我的应用程序 我研究了该应用程序的功能并发现它广泛使用BroadcastReceiv
  • 如何消除警告:使用“$”而不是“.”对于 Eclipse 中的内部类

    我是 Android 开发新手 当我将 eclipse 和 Android SDK 更新到最新版本后 我收到警告 Use instead of for inner classes or use only lowercase letters
  • android:widgetLayout 和 android:layout 之间的区别?

    我得到一些奇怪的配置 其中 widgetLayout 配置列表项的内部空间 而布局配置整个项目列表和屏幕背景 有人能真正解释一下什么是 widgetLayout 吗 android layout 整个首选项的布局 包括标题 摘要和小部件 a
  • Android - 从服务器获取响应时验证 JSON 以避免 JSONException

    在我的一些与服务器通信并使用 http 获取响应的应用程序中 我使用 json 来格式化数据服务器端 当它到达设备时 我使用类似于我在 stackoverflow 上找到的代码 private class LoadData extends
  • 如何在 Fragment 中使用 onNewIntent(Intent Intent) 方法?

    我正在尝试从我的设备使用 NFC 硬件 但是 问题是当我注册 Activity 来接收 Intent 时 PendingIntent pendingIntent PendingIntent getActivity this 0 new In
  • 如何在高速缓存中存储图像

    我对此完全空白 我想从 URL 下载图像 并且必须将其存储在内部 以便下次我不需要连接到网络 而是从缓存中检索它 但我不知道该怎么做 谁能帮我提供一个代码片段 import java io BufferedInputStream impor
  • 有没有办法模拟小部件或屏幕特定位置的触摸?

    我想触摸或点击小部件上的某处 而不让用户在此时明确触摸屏幕 有什么办法可以做到吗 我已经检查了SO答案 有些人建议使用 集成测试 但在未物理或以某种方式连接到笔记本电脑的设备上无法执行 集成测试 无法找到更好的措辞 我还尝试进行 hitTe
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • Android同步onSensorChanged?

    这是我的问题的后续 Android线程可运行性能 https stackoverflow com questions 36395440 android thread runnable performance 我在理解应用程序的同步方法时遇到
  • ActionBar 中的进度条

    我正在使用一个应用程序 它将在应用程序内部加载一个网站 现在我想在操作栏中添加一个进度栏 而无需向上滑动来抑制功能 像那样 我在用Fragment在我的应用程序中 WebviewFragment public class WebviewFr
  • 如何在android中获取当前一周的所有天数?

    我想在字符串数组中获取本周的所有日期 我怎样才能做到这一点 提前致谢 I think你想要这样的东西 假设你总是想要从星期一开始的几周 以及 MM dd yyyy 的日期格式 DateFormat format new SimpleDate
  • 从 Android 中的过渡动画中排除 BottomNavigation

    我一直在四处寻找 但找不到有助于解决这个特定问题的答案 我的应用程序有一个自定义滑入 滑出效果 如下所示 Intent intent new Intent getApplicationContext MyActivity class sta

随机推荐

  • 如何启动已停止的线程

    我创建一个新线程并从主线程启动它 m MyThread new Thread HandleMyThread m MyThread IsBackground true m MyThread Start private void HandleM
  • 虾表设置标题行背景色

    pdf table header row1 row2 width 490 cell style size 7 align center do style row 0 padding 4 2 font Prawn BASEDIR data f
  • 在 Oracle 计算实例 (ubuntu-20.04) 上打开端口 19132

    我创建了一个运行 Ubuntu 20 04 的 Oracle 云基础设施计算实例 我正在尝试打开端口 19132 根据我发现的另一个问题在 Oracle Cloud Infrastructure 计算节点上打开端口 80 https sta
  • Mac 终端 - 打开终端时出现“释放的指针未分配”错误

    在 mac 上打开终端时收到以下消息 上次登录 3 月 11 日星期二 14 33 24 在控制台上 登录 291 0x7fff78af9310 malloc 对象 0x7f974be006f0 的错误 正在释放的指针未分配 在malloc
  • 映射服务使用的网络驱动器

    假设某些 Windows 服务使用需要映射网络驱动器且不需要 UNC 路径的代码 当服务启动时 如何使驱动器映射可供服务会话使用 以服务用户身份登录并创建持久映射不会在实际服务的上下文中建立映射 使用此功能需要您自担风险 我已经在XP和Se
  • Java - 堆与直接内存访问

    我最近遇到sun misc Unsafe类 允许用户以类似于 C 的方式分配 解除分配和一般访问内存 我读过一些解决这个问题的博客 例如 堆内存和直接内存哪个更快 http mentablog soliveirajr com 2012 11
  • 如何在功能测试中测试电子邮件(Symfony2)

    我正在尝试在功能测试中测试电子邮件 我的源代码是一样的食谱的例子 http symfony com doc current cookbook email testing html 控制器 public function sendEmailA
  • PySpark 中按降序排序

    我正在使用 PySpark Python 2 7 9 Spark 1 3 1 并有一个数据框 GroupObject 我需要按降序过滤和排序 试图通过这段代码来实现它 group by dataframe count filter coun
  • 使用 F# 的爱因斯坦之谜解决方案 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在找爱因斯坦之谜 http en
  • 将最后一个值替换为之前的值

    我有一组不完整的三元组 a np arange 10 3 1 print a 1 1 1 2 2 2 3 3 3 4 Or a1 np arange 11 3 1 print a1 1 1 1 2 2 2 3 3 3 4 4 最后的值为4
  • 是否可以让 valgrind 忽略某些库?

    或者最好是全部而不只是我的代码 我的程序使用 Gtk Loudmouth 和其他一些东西 而这两个 以及它们背后的一些 libgcrypto libssl 本身导致了如此多的错误 以至于我无法检测到我自己的错误 是否有可能让 valgrin
  • 适用于多个项目的多个 Rails 版本

    我想在一个项目中使用 Rails 2 2 2 在另一个项目中使用 Rails 2 3 2 两者均已安装 What is rails 2 2 2 version应该做的 我读到它使 2 2 2 成为工作版本 也就是说 从那时起将使用的版本 但
  • 当我使用 gridview:true 时, afterInsertRow : function(ids) 方法不执行

    当我设定gridview to true gridview true 在我们的jqGrid中增加jqGrid的性能 方法如下插入行后 或者其他类似的方法不被执行 以下是我的jgGrid的代码 jQuery displaylistGrid j
  • C#中的foreach是如何实现的? [复制]

    这个问题在这里已经有答案了 究竟是怎样的foreach在 C 中实现 我想象它的一部分看起来像 var enumerator TInput GetEnumerator while enumerator MoveNext do some st
  • VS 2015 命令提示符中不再找到 rc.exe

    我刚刚安装了 Windows 10 创意者更新 版本 10 0 15063 我安装了多个版本的 Visual Studio 2012 2013 2015 和 2017 我几周前才安装了 VS 2017 Problem CMake 版本 3
  • Flash 点击时不打开链接

    我用 Flash 创建了这个横幅 我需要单击它来打开一个网页 我使用了这个 Actionscript 3 0 代码 link btn addEventListener MouseEvent CLICK openurl function op
  • 为什么无法使用 CentOS、plesk 9.2.1 和 tomcat 5.5 安装 solr 1.3.0?

    好吧 我只是通过他的托管提供商为我的客户设置了一个专用服务器 他们在那里安装了 plesk 版本 9 2 1 并且该专用服务器的一个警告是 如果我在控制面板之外 即使用 SSH 执行任何任务 他们不保证支持该软件组件 这很好 因为我宁愿使用
  • ScrollPane删除节点时跳转到顶部

    我有一个ScrollPane含有一个TilePane显示图像 每当我删除其中一张图像时ScrollPane跳回到顶部 这在尝试删除多个图像时非常烦人 有没有办法控制滚动行为 我在 Windows 7 上运行此代码 import javafx
  • 为什么net.DialTimeout一半的时候会超时?

    这是我的测试代码 我设置了6s超时 但是程序只执行了3s 为什么 package main import net import time import fmt func main fmt Println time Now conn err
  • Android - 使用 Android 支持库时无法在 SearchWidget 中找到 TextView

    我使用以下代码片段在 SearchView 小部件中查找 TextView int autoCompleteTextViewID getResources getIdentifier android id search src text n