最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

Android顶部工具栏ToolBar实现SearchView搜索过滤功能

Android 太平洋学习网 浏览 评论

我们在Android ToolBar或ActionBar上添加SearchView搜索控件,并实现实现SearchView搜索过滤功能是非常重要的,为了在顶部导航ActionBar上实现搜索过滤功能,需要先在ToolBar或ActionBar上添加搜索框按钮。

本示例项目结构:本示例将通过Android SearchView搜索控件过滤ListView列表里面的数据

工具栏1上的android Searchview

1)先在activity_main.xml中添加一个ListView控件

<?xml version="1.0" encoding="utf-8"?>  
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:app="http://schemas.android.com/apk/res-auto"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context="searchview.toolbar.com.searchviewtoolbar.MainActivity">  
  
    <ListView  
        android:id="@+id/listView"  
        android:layout_width="match_parent"  
        android:layout_height="fill_parent"  
        />  
  
</android.support.constraint.ConstraintLayout>

2)创建一个Android SearchView,将会显示到顶部导航的工具栏中:

<?xml version="1.0" encoding="utf-8"?>  
<menu xmlns:app="http://schemas.android.com/apk/res-auto"  
xmlns:android="http://schemas.android.com/apk/res/android">  
  
<item  
    android:id="@+id/app_bar_search"  
    android:icon="@drawable/ic_search_black_24dp"  
    android:title="Search"  
    app:showAsAction="ifRoom|withText"  
    app:actionViewClass="android.widget.SearchView"/>  
</menu>

3)在MainActivity.java中实现SearchView的搜索与过滤功能,代码如下:

package searchview.toolbar.com.searchviewtoolbar;  
  
import android.support.v4.view.MenuItemCompat;  
import android.support.v7.app.AppCompatActivity;  
import android.os.Bundle;  
import android.view.Menu;  
import android.view.MenuInflater;  
import android.view.MenuItem;  
import android.widget.ArrayAdapter;  
import android.widget.ListView;  
import android.widget.SearchView;  
import android.widget.Toast;  
  
import java.util.ArrayList;  
  
public class MainActivity extends AppCompatActivity {  
  
    ListView listView;  
    ArrayList<String> list;  
    ArrayAdapter<String > adapter;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        listView = (ListView) findViewById(R.id.listView);  
  
        list = new ArrayList<>();  
        list.add("Apple");  
        list.add("Banana");  
        list.add("Pineapple");  
        list.add("Orange");  
        list.add("Lychee");  
        list.add("Gavava");  
        list.add("Peech");  
        list.add("Melon");  
        list.add("Watermelon");  
        list.add("Papaya");  
  
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);  
        listView.setAdapter(adapter);  
    }  
  
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        MenuInflater inflater = getMenuInflater();  
        inflater.inflate(R.menu.menu, menu);  
        MenuItem searchViewItem = menu.findItem(R.id.app_bar_search);  
        final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchViewItem);  
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {  
            @Override  
            public boolean onQueryTextSubmit(String query) {  
                searchView.clearFocus();  
                return false;  
  
            }  
  
            @Override  
            public boolean onQueryTextChange(String newText) {  
                adapter.getFilter().filter(newText);  
                return false;  
            }  
        });  
        return super.onCreateOptionsMenu(menu);  
    }  
}

当我们在Android顶部导航添加完搜索按钮SearchView菜单,加载List之后,就可以看到如下效果:

android Searchview on toolbar 2

当我们在Android SearchView搜索控件上输入信息的时候,马上就会SearchView的onQueryTextChange事件进行ListView的数据过滤了:

android Searchview on toolbar 3

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/android/1197.html
"文章很值,打赏犒劳作者一下"
微信号: Javaweb_engineer

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论