手记

Android零基础入门第62节:搜索框组件SearchView

一、SearchView概述

    SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索。

    SearchView默认是展示一个search的icon,点击icon展开搜索框,也可以自己设定图标。用SearchView时可指定如下表所示的常见XML属性及相关方法。

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

二、SearchView概述

    接下来通过一个简单的示例程序来学习SearchView的使用。

    继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建searchview_layout.xml文件,在其中填充如下代码片段:

[代码]xml代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

<?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:layout_margin="15dp"

              android:orientation="vertical" >

 

    <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>

    上面的布局文件中定义了一个SearchView组件,并为该SearchView组件定义了一个 ListView组件,该ListView组件用于为SearchView组件显示不自动完成列表。

    接下来为SearchView编写操作控制代码,并为其添加监听器。新建SearchViewActivity.java文件,加载上面新建的布局文件,具体代码如下:

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

package com.jinyu.cqkxzsxy.android.advancedviewsample;

 

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;

 

/**

 * @创建者 鑫鱻

 * @描述 Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert

 */

public class SearchViewActivity   extends AppCompatActivity   {

    private SearchView mSearchView = null;

    private ListView mListView = null;

    private String[] mDatas = {"aaa", "bbb",   "ccc", "airsaid"};

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.searchview_layout);

 

        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,   mDatas));

        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;

            }

        });

    }

}

</string>

    修改启动的Activity,运行程序,可以看到界面效果。

    在搜索框中输入内容后,可以看到上图右侧所示筛选效果。

    关于SearchView的简单使用先学到这里,更多用法建议自己多加练习。

    今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!

原文链接:http://www.apkbus.com/blog-205190-72678.html

0人推荐
随时随地看视频
慕课网APP