SearchView--搜索框案例



页面布局content_main.xml
<? xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns: android ="http://schemas.android.com/apk/res/android"
    android :layout_width= "match_parent"
    android :layout_height= "match_parent"
    android :orientation= "vertical">
    <!--定义一个SearchVieww-->
    <SearchView
        android :id= "@+id/searchView"
        android :layout_width= "match_parent"
        android :layout_height= "wrap_content" />

    <ListView
        android :id= "@+id/listView"
        android :layout_width= "match_parent"
        android :layout_height= "0dp"
        android :layout_weight= "1"/>
</LinearLayout>


主程序SearchViewTest
package com.eson.searchview ;

import android.os.Bundle ;
import android.support.v7.app.AppCompatActivity ;
import android.text.TextUtils ;
import android.widget.ArrayAdapter ;
import android.widget.ListView ;
import android.widget.SearchView ;
import android.widget.Toast ;

public class SearchViewTest extends AppCompatActivity implements SearchView.OnQueryTextListener {

    private final String[] mString={ "android" ,"html" , "ios", "java" ,"javaScript" , "css", "node.js" };
    private ListView listView ;
    private SearchView searchView ;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super .onCreate(savedInstanceState) ;
        setContentView(R.layout. content_main );
        listView = (ListView) findViewById(R.id. listView );
        listView .setAdapter( new ArrayAdapter<String>( this, android.R.layout. simple_list_item_1, mString ));
        listView .setTextFilterEnabled( true) ;

        searchView = (SearchView) findViewById(R.id. searchView );
        //设置该SearchView默认是否自动缩小为图标
        searchView .setIconifiedByDefault( false) ;
        //为该SearchView组件设置事件监听器
        searchView .setOnQueryTextListener( this );
        //设置该SearchView内默认显示的提示文本
        searchView .setQueryHint( "查找" );

    }
   //用户输入字符激发该方法
    @Override
    public boolean onQueryTextSubmit (String query) {
        //实际应用中应该执行该方法内执行实际查询
        //此处仅使用Toast显示用户输入的查询内容
        Toast. makeText( this, "您的选择是:" +query, Toast. LENGTH_SHORT).show() ;
        return false;
    }
   //单击搜索按钮时激发该方法
    @Override
    public boolean onQueryTextChange (String newText) {

        if (TextUtils. isEmpty(newText)){
            //清除ListView的过滤
            listView .clearTextFilter() ;
        } else {
            //使用用户输入的内容对ListView的列表进行过滤
            listView .setFilterText(newText) ;
        }
        return true;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值