SearchView---搜索

来源:互联网 发布:mysql解压版配置 编辑:程序博客网 时间:2024/05/29 03:19

SearchView的使用过程:

 A: 在res/menu/menu_main.xml文件中添加菜单项并做如下配置:     android6.0版本的使用与不是android6.0版本的使用有所不同    (1)android6.0版本:            <item android:id="@+id/action_search"                android:orderInCategory="200"                android:title="搜索"                app:actionViewClass="android.support.v7.widget.SearchView"                app:showAsAction="always"            />                属性:android:iconifiedByDefault=""                    值为true,表示初始搜索框是关闭的,仅显示一个放大镜;                    值为false搜索框是打开的                android:imeOptions=""                    软键盘右下角的行为操作,值可以是搜索、下一个、发送、完成等等      android:queryHint输入框默认文本      注意:   app:actionViewClass="android.support.v7.widget.SearchView",命名空间前缀必须是app,因为使用的是V7包中的类.            app:showAsAction="always":取值一定要给always表示这个菜单项永远出现在actionBar的空间区域.它的命名空间也必须是app    (2).6.0以下的版本:             <item                 android:id="@+id/seach"                android:orderInCategory="200"                android:title="搜索"                android:actionViewClass="android.widget.SearchView"                android:showAsAction="always"            />      注意:使用的是 android.widget.SearchView 包下的SearchView。所以使用的命名空间de前缀为android     B:  在Activity的onCreateOptionsMenu(Menu menu)方法中根据菜单填充器找到菜单项,        getMenuInflater().inflate(R.menu.main, menu);    根据findItem()方法通过id得到菜单项的item,返回MenuItem(菜单项)对象        MenuItem menuSearch = menu.findItem(R.id.seach);    通过菜单项对象调用getActionView()方法得到之前配置的SearchView对象,        SearchView searchView = (SearchView) menuSearch.getActionView();    给这个对象注册监听器对象.setOnQueryTextListener(new OnQueryTextListener(){}),实现两个重写的方法:            /**             * 当用户按确认键时自动调用的方法             * query:用户输入的内容             * return:如果返回true,当前事件对象被消费掉,false表示没有消费调用             */         onQueryTextSubmit(String query):在用户按回车键或者手机上的确认键时自动调用的方法            /**             * 当输入文本内容变化时自动调用的方法             * newText:用户输入的内容             * return:如果返回true,当前事件对象被消费掉,false表示没有消费调用             */         onQueryTextChange(String newText):当用户在指定文本框中输入内容后内容发生了变化时自动调用的方法.                      //调用.restartLoader(id, args, callback)方法重启Loader,会自动调用onCreateLoader(int id, Bundle args)方法,                   并将args参数传入,通过args.getXXX()可以获得Bundle传过去的值。                Bundle bundle = new Bundle();                bundle.putString("keyword", newText);                loaderManager.restartLoader(1, bundle, MainActivity.this);      
0 0
原创粉丝点击