Android搜索框SearchView属性和用法详解
程序员文章站
2023-12-02 19:02:28
searchview简介
searchview是android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。
searchview默认是展示一个searc...
searchview简介
searchview是android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。
searchview默认是展示一个search的icon,点击icon展开搜索框,如果你想让搜索框默认就展开,可以通过seticonifiedbydefault(false);实现。
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; } }); } }
效果截图:
demo下载:android搜索框
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: 笔记本电脑怎么设置关闭盖子后继续运行?