我正在尝试使用SearchView,除非我想搜索空字符串,否则我可以使用一切.

当我删除最后一个字符时,onQueryTextChange会做出反应,但我希望用户能够在搜索字段为空时按下搜索按钮.

final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {

@Override

public boolean onQueryTextChange(String newText) {

// Do something

return true;

}

@Override

public boolean onQueryTextSubmit(String query) {

// Do something

return true;

}

};

searchView.setOnQueryTextListener(queryTextListener);

我也尝试过使用OnKeyListner.但它似乎也没有用.

searchView.setOnKeyListener(new OnKeyListener() {

@Override

public boolean onKey(View arg0, int arg1, KeyEvent arg2) {

//Do something

return true;

}

});

这似乎是一件很简单的事情,但我无法让它发挥作用.有什么建议?

编辑

我已经找了一段时间的解决方案,在发布这个问题后的几分钟,我找到了解决方案.

在这个帖子中,我发现这不是一个错误,但它实际上是故意的.

所以我刚下载了ActionBarSherlock并对onSubmitQuery()方法进行了一些修改

private void onSubmitQuery() {

CharSequence query = mQueryTextView.getText();

if (query != null && TextUtils.getTrimmedLength(query) > 0) {

if (mOnQueryChangeListener == null

|| !mOnQueryChangeListener.onQueryTextSubmit(query.toString())) {

if (mSearchable != null) {

launchQuerySearch(KeyEvent.KEYCODE_UNKNOWN, null, query.toString());

setImeVisibility(false);

}

dismissSuggestions();

}

}

}

和修改版

private void onSubmitQuery() {

CharSequence query = mQueryTextView.getText();

if(query == null) {query = "";}

if (mOnQueryChangeListener == null

|| !mOnQueryChangeListener.onQueryTextSubmit(query.toString())) {

if (mSearchable != null) {

launchQuerySearch(KeyEvent.KEYCODE_UNKNOWN, null, query.toString());

setImeVisibility(false);

}

dismissSuggestions();

}

}

希望如果其他人遇到这个问题,这会有所帮助.

java searchview_java – Android SearchView空字符串相关推荐

  1. android定义空字符串数组,android – retrofit:处理可以是空字符串或数组的属性

    您可以尝试这个来检查prop2是数组还是空字符串 JsonObject jsonObject = new Gson().fromJson("{ \"status\":\& ...

  2. android 去空字符串,android – TextUtils.isEmpty()方法为空字符串返回false

    对于空字符串,它应该返回true. 从TextUtils的源代码: public static boolean isEmpty(@Nullable CharSequence str) { if (st ...

  3. Java关于null和空字符串““的区别

    我们都知道当我们new一个String类型的变量是时,用的是 String str = null:而不是Sting str ="": null不会分配内存空间,相当于什么都没有. ...

  4. android 表示空字符串,Android Logcat获取空字符串时非常奇怪的行为

    这是一个有趣的问题.我只是在LogRabbit中尝试过,并且能够看到相同的结果. 我快速浏览了android源代码,看到Log.W(-)最终以本机代码显示并在logd_write.c中得到处理 这基本 ...

  5. java map转json字符串_Java-Gso-json字符串解析-php后台返回字段类型可能为字符串(/空字符串)或者对象的情况...

    其实本来android前端定义的对象类型是对象,如果后台没有值的情况下,理论上给null,如果是数组给[]或者null都可以的.这样Gson再解析转换的时候就不会出问题!但是最近重构发现后台如果没有字 ...

  6. android+proguard目录,Android proguard问题:路径可能不是null或空字符串.路径=“空”...

    在设置之前,每件事情都很好 minifyEnabled true 和 shrinkResources true 设置这些值后,每当我运行项目时,我都会收到此错误: Information:Gradle ...

  7. 在 Java 中检查空字符串或空白字符串

    1. 简介 在本教程中,我们将讨论一些在 Java 中检查空字符串或空白字符串的方法.有一些母语方法,以及几个库. 2. 空与空白 当然,知道字符串何时为空或空白是很常见的,但让我们确保我们的定义在同 ...

  8. java 空串占用内存吗_java空字符串“”和null区别

    空字符串"" 1.类型:""是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object中的方法(.toString()等) 2 ...

  9. java list 去空字符串_【JAVA基础】list和字符串判空

    前言: 我们在项目中经常需要对获取的list集合或String类型变量判空,看前辈的代码,不同的人判空的方法不一样,那么,Java代码中,对list集合和String类型变量到底该如何判空呢? 一.J ...

最新文章

  1. Dinic二分图匹配 || Luogu P3386
  2. 干货丨深度学习VGG模型核心拆解
  3. python多进程共享内存
  4. 假日教程-ZStack映像檔系列(TurnkeyLinux Observium)
  5. Java并发教程–锁定:内在锁
  6. ZOJ 3981 2017CCPC秦皇岛 A:Balloon Robot
  7. python2.3嵌套if结构:
  8. Linux驱动的ioctl函数简要说明
  9. vm14安装mac10教程(亲测;转载)
  10. 【从零开始学架构-李运华】01|架构到底是指什么?
  11. SpringBoot兼容人大金仓数据库
  12. stm32指纹考勤机 (程序源码包括app程序+pcb电路图+原件清单)
  13. android su程序分析
  14. Andriod Studio创建数据库并查看自己创建的数据库
  15. OkHttp3 (二)——请求
  16. AndroidStuodio编译失败报错:Entry name ‘assets/sm2/t.jks‘ collided解决方案
  17. 《周易》经典语录,感悟人生智慧(二)
  18. 统计学学习日记:L10-假设检验p值
  19. 程序员求职简历,项目经验怎么写?免费修改简历并提供简历模板
  20. centos 6.6 安装图形界面 X server gnome Xwindows

热门文章

  1. 速度之王 — LZ4压缩算法(一)
  2. suface 触控笔
  3. 详解块级元素、行内元素、行内块级元素类型、区别及相互转化
  4. DGIOT实战教程-监控摄像头接入(v4.6.0)
  5. Matlab中求取置信区域
  6. linux下git安装
  7. 【2d游戏开发】实现昼夜系统
  8. 谷歌浏览器提示您的连接不是私密连接
  9. 网页添加Live 2D看板娘超简单教程——伸手即可带走
  10. 【kubernetes】从僵尸进程探讨容器的多进程管理