android之SearchView

来源:互联网 发布:brooks brothers 知乎 编辑:程序博客网 时间:2024/05/18 15:08

1、SearchView是搜索框组件,它可以让用户在文本框中输入文字,并且通过监听器监督用户的输入,当用户完成后提交搜索时,也可以通过监听器执行实际的搜索

常用的方法如下:

        search.setIconifiedByDefault(false);//设置该searchview默认是否缩小为图标
        search.setOnQueryTextListener(this);//监听
        search.setSubmitButtonEnabled(true);//设置是否显示搜索按钮
        search.setQueryHint("查询");//默认显示的提示文本

如果为SearchView增加一个配套的ListView,则可以为SearchView增加自动完成的功能,示例如下:

activity_main.xml

<span style="font-family:Comic Sans MS;font-size:14px;"></span><pre name="code" class="html"><span style="font-family:Comic Sans MS;font-size:14px;"><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:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    tools:context=".MainActivity" >    <SearchView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/search" />        <ListView         android:id="@+id/list"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        /></LinearLayout></span>

MainActivity.java

<span style="font-family:Comic Sans MS;font-size:14px;">package com.example.searchviewtest;import android.os.Bundle;import android.app.Activity;import android.text.TextUtils;import android.view.Menu;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.SearchView;import android.widget.SearchView.OnQueryTextListener;import android.widget.Toast;public class MainActivity extends Activity implements OnQueryTextListener {private SearchView search;private ListView list;private String str[] = new String[]{"ss","bb","cc"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);list = (ListView) findViewById(R.id.list);search = (SearchView) findViewById(R.id.search);list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str));list.setTextFilterEnabled(true);//输入字符时自动匹配search.setIconifiedByDefault(false);//设置该searchview默认是否缩小为图标search.setOnQueryTextListener(this);//监听search.setSubmitButtonEnabled(true);search.setQueryHint("查询");//默认显示的提示文本}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onQueryTextSubmit(String query) {//实际应用中在该方法中实行查询Toast.makeText(this, "你选择的是:"+query, Toast.LENGTH_SHORT).show();return false;}//用户输入字符时激发该方法@Overridepublic boolean onQueryTextChange(String newText) {if(TextUtils.isEmpty(newText)){list.clearTextFilter();//清除listview的过滤}else{//使用用户输入的内容对listview的列表项过滤list.setFilterText(newText);}return true;}} </span>

0 0
原创粉丝点击