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

Android中的搜索框(SearchView)的功能和用法
id="iframeu2597680_0" src="http://pos.baidu.com/hcom?sz=650x110&rdid=2597680&dc=2&di=u2597680&dri=0&dis=0&dai=4&ps=329x203&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&dcb=BAIDU_SSP_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1465910419327&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&ari=1&dbv=2&drs=1&pcs=1366x651&pss=1366x340&cfv=21&cpl=1&chi=1&cce=true&cec=gb2312&tlm=1460995338&ltu=http%3A%2F%2Fwww.2cto.com%2Fkf%2F201502%2F376368.html&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DGnjpXVx1dKGyIS-czmulltPKoUAHvEW3TR6ozyiru7V0benhmo9J_rysiNHc3apaotUI76Xrp6pPnflkJvpFqa%26wd%3D%26eqid%3D916957470001a9c900000003576000d5&ecd=1&psr=1366x768&par=1366x728&pis=-1x-1&ccd=24&cja=true&cmi=2&col=zh-CN&cdo=-1&tcn=1465910422&qn=a58f9e08cdb7e94c&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">

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 extends Activity implements
         SearchView.OnQueryTextListener {
     private SearchView sv;
     private ListView lv;
     // 自动完成的列表
     private final String[] mStrings = { "aaaaa" , "bbbbbb" , "cccccc" , "ddddddd" };
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.main);
         lv = (ListView) findViewById(R.id.lv);
         lv.setAdapter( new ArrayAdapter<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
     public boolean onQueryTextChange(String newText) {
         Toast.makeText(SearchViewTest. this , "textChange--->" + newText, 1 ).show();
         if (TextUtils.isEmpty(newText)) {
             // 清除ListView的过滤
             lv.clearTextFilter();
         } else {
             // 使用用户输入的内容对ListView的列表项进行过滤
             lv.setFilterText(newText);
         }
         return true ;
     }
 
     // 单击搜索按钮时激发该方法
     @Override
     public boolean onQueryTextSubmit(String query) {
         // 实际应用中应该在该方法内执行实际查询
         // 此处仅使用Toast显示用户输入的查询内容
         Toast.makeText( this , "您的选择是:" + query, Toast.LENGTH_SHORT).show();
         return false ;
     }
}
</string>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值