登陆Android中的搜索框(SearchView)的功能和用法

来源:互联网 发布:浙江省软件考试查询 编辑:程序博客网 时间:2024/06/05 08:12
Android中的搜索框(SearchView)的功能和用法
<iframe id="iframeu2597680_0" src="http://pos.baidu.com/hcom?sz=650x110&amp;rdid=2597680&amp;dc=2&amp;di=u2597680&amp;dri=0&amp;dis=0&amp;dai=4&amp;ps=329x203&amp;coa=at%3D3%26rsi0%3D650%26rsi1%3D110%26pat%3D6%26tn%3DbaiduCustNativeAD%26rss1%3D%2523F9F9F9%26conBW%3D0%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D14%26rss2%3D%2523000000%26titSU%3D0%26ptbg%3D90%26piw%3D0%26pih%3D0%26ptp%3D1&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1465910419327&amp;ti=Android%E4%B8%AD%E7%9A%84%E6%90%9C%E7%B4%A2%E6%A1%86%EF%BC%88SearchView%EF%BC%89%E7%9A%84%E5%8A%9F%E8%83%BD%E5%92%8C%E7%94%A8%E6%B3%95%20-%20Android%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0_%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8F%91%20-%20%E7%BA%A2%E9%BB%91%E8%81%94%E7%9B%9F&amp;ari=1&amp;dbv=2&amp;drs=1&amp;pcs=1366x651&amp;pss=1366x340&amp;cfv=21&amp;cpl=1&amp;chi=1&amp;cce=true&amp;cec=gb2312&amp;tlm=1460995338&amp;ltu=http%3A%2F%2Fwww.2cto.com%2Fkf%2F201502%2F376368.html&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DGnjpXVx1dKGyIS-czmulltPKoUAHvEW3TR6ozyiru7V0benhmo9J_rysiNHc3apaotUI76Xrp6pPnflkJvpFqa%26wd%3D%26eqid%3D916957470001a9c900000003576000d5&amp;ecd=1&amp;psr=1366x768&amp;par=1366x728&amp;pis=-1x-1&amp;ccd=24&amp;cja=true&amp;cmi=2&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1465910422&amp;qn=a58f9e08cdb7e94c&amp;tt=1465910417096.4818.4918.4919" marginwidth="0" marginheight="0" scrolling="no" vspace="0" hspace="0" style="border:0; vertical-align:bottom;margin:0;" allowtransparency="true" frameborder="0" height="110" width="650" align="center,center"></iframe>

1、SearchView是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。


2、SearchView组件的常用方法如下:

①setIconifiedByDefault(boolean iconified) ===> 设置搜索框默认是否自动缩小为图标。
②setOnQueryTextListener(SearchView,OnQueryTextListener listener) ===> 为搜索框设置监听器
③setSubmitButtonEnabled(boolean enabled) ===> 设置是否显示搜索按钮
④setQueryHint(CharSequence hint) ===> 设置搜索框内的默认显示的提示文本


3、为SearchView增加一个配套的ListView,则可以为其增加自动完成的功能,即ListView用于为SearchView显示自动补齐列表


4、具体实现代码如下:



<!--?xml version="1.0"encoding="utf-8"?-->
<linearlayout android:orientation="vertical"android:layout_height="match_parent"android:layout_width="match_parent"xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 顶一个SearchView -->
    <searchview android:id="@+id/sv"android:layout_height="wrap_content"android:layout_width="wrap_content">
    <!-- 为SearchView定义自动补齐的ListView-->
    <listview android:id="@+id/lv"android:layout_height="0dp"android:layout_width="match_parent"android:layout_weight="1">
</listview></searchview></linearlayout>



package org.crazyit.ui;
 
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
import android.app.Activity;
 
public class SearchViewTest extendsActivityimplements
        SearchView.OnQueryTextListener {
    privateSearchView sv;
    privateListView lv;
    // 自动完成的列表
    privatefinalString[] mStrings = {"aaaaa","bbbbbb", "cccccc","ddddddd"};
 
    @Override
    protectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        lv = (ListView) findViewById(R.id.lv);
        lv.setAdapter(newArrayAdapter<string>(this,android.R.layout.simple_list_item_1, mStrings));
        lv.setTextFilterEnabled(true);//设置lv可以被过虑
        sv = (SearchView) findViewById(R.id.sv);
        // 设置该SearchView默认是否自动缩小为图标
        sv.setIconifiedByDefault(false);
        // 为该SearchView组件设置事件监听器
        sv.setOnQueryTextListener(this);
        // 设置该SearchView显示搜索按钮
        sv.setSubmitButtonEnabled(true);
        // 设置该SearchView内默认显示的提示文本
        sv.setQueryHint("查找");
    }
 
    // 用户输入字符时激发该方法
    @Override
    publicbooleanonQueryTextChange(String newText) {
        Toast.makeText(SearchViewTest.this,"textChange--->"+ newText, 1).show();
        if(TextUtils.isEmpty(newText)) {
            // 清除ListView的过滤
            lv.clearTextFilter();
        }else{
            // 使用用户输入的内容对ListView的列表项进行过滤
            lv.setFilterText(newText);
        }
        returntrue;
    }
 
    // 单击搜索按钮时激发该方法
    @Override
    publicbooleanonQueryTextSubmit(String query) {
        // 实际应用中应该在该方法内执行实际查询
        // 此处仅使用Toast显示用户输入的查询内容
        Toast.makeText(this,"您的选择是:"+ query, Toast.LENGTH_SHORT).show();
        returnfalse;
    }
}
</string>

0 0
原创粉丝点击