欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android搜索框SearchView属性和用法详解

程序员文章站 2023-12-02 19:02:28
searchview简介 searchview是android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。 searchview默认是展示一个searc...

searchview简介

searchview是android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。
searchview默认是展示一个search的icon,点击icon展开搜索框,如果你想让搜索框默认就展开,可以通过seticonifiedbydefault(false);实现。

searchview属性

Android搜索框SearchView属性和用法详解

searchview使用

xml中定义searchview:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:layout_margin="15dp"
 android:orientation="vertical"
 tools:context="com.airsaid.searchviewdemo.mainactivity">

 <searchview
  android:id="@+id/searchview"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:iconifiedbydefault="false"
  android:queryhint="请输入搜索内容" />

 <listview
  android:id="@+id/listview"
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1" />
</linearlayout>

main代码:

public class mainactivity extends appcompatactivity {

 private string[] mstrs = {"aaa", "bbb", "ccc", "airsaid"};
 private searchview msearchview;
 private listview mlistview;

 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);
  msearchview = (searchview) findviewbyid(r.id.searchview);
  mlistview = (listview) findviewbyid(r.id.listview);
  mlistview.setadapter(new arrayadapter<string>(this, android.r.layout.simple_list_item_1, mstrs));
  mlistview.settextfilterenabled(true);

  // 设置搜索文本监听
  msearchview.setonquerytextlistener(new searchview.onquerytextlistener() {
   // 当点击搜索按钮时触发该方法
   @override
   public boolean onquerytextsubmit(string query) {
    return false;
   }

   // 当搜索内容改变时触发该方法
   @override
   public boolean onquerytextchange(string newtext) {
    if (!textutils.isempty(newtext)){
     mlistview.setfiltertext(newtext);
    }else{
     mlistview.cleartextfilter();
    }
    return false;
   }
  });

 }
}

效果截图:

Android搜索框SearchView属性和用法详解

demo下载:android搜索框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。