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