个人总结——暴力去除搜索框的下划线

来源:互联网 发布:林琴南 知乎 编辑:程序博客网 时间:2024/06/06 11:41

SearchView下滑去除

private void deletedown() {//去掉搜索框的下划线   sv = (SearchView)findViewById(R.id.sv);    //为该SearchView组件设置事件监听器   //sv.setOnQueryTextListener(this);   // 设置该SearchView内默认显示的提示文本   //sv.setQueryHint("哈雷实验室");   if (sv != null) {      try {        //--拿到字节码         Class<?> argClass = sv.getClass();         //--指定某个私有属性,mSearchPlate是搜索框父布局的名字         Field ownField = argClass.getDeclaredField("mSearchPlate");         //--暴力反射,只有暴力反射才能拿到私有属性         ownField.setAccessible(true);         View mView = (View) ownField.get(sv);         //--设置背景         mView.setBackgroundColor(Color.TRANSPARENT);      } catch (Exception e) {         e.printStackTrace();      }   }}
实现搜索功能(实现SearchView.OnQueryTextListener,重写以下方法)

@Overridepublic boolean onQueryTextSubmit(String s) {   // 实际应用中应该在该方法内执行实际查询   // 此处仅使用Toast显示用户输入的查询内容   Toast.makeText(MainActivity.this, "您的选择是:" + s, Toast.LENGTH_SHORT).show();   return false;}@Overridepublic boolean onQueryTextChange(String s) {   if (TextUtils.isEmpty(s)) {      // 清除ListView的过滤      mListView.clearTextFilter();   } else {      // 使用用户输入的内容对ListView的列表项进行过滤      mListView.setFilterText(s);   }   return true;}

1 0