Android搜索控件SearchView的用法

泡在网上的日子 / 文 发表于2012-11-30 23:22 第次阅读 SearchView,android

When you're ready to add search functionality to your application, Android helps you implement the user interface with either a search dialog that appears at the top of the activity window or a search widget that you can insert in your layout. Both the search dialog and the widget can deliver the user's search query to a specific activity in your application. This way, the user can initiate a search from any activity where the search dialog or widget is available, and the system starts the appropriate activity to perform the search and present results.

Other features available for the search dialog and widget include:

  • Voice search

  • Search suggestions based on recent queries

  • Search suggestions that match actual results in your application data

This guide shows you how to set up your application to provide a search interface that's assisted by the Android system to deliver search queries, using either the search dialog or the search widget.

如果你想给你的app加上搜索的功能,Android可以通过searchview

 

对于ActionView,我们可以在menu的布局文件使用中来自定义searchview布局,如代码

<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@drawable/ic_menu_search"
android:showAsAction="ifRoom"
android:actionLayout="@layout/searchview" />

也可以直接指定Android系统中的SearchView控件,那么这时menu"_search的代码要这样写

<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@drawable/ic_menu_search"
android:showAsAction="ifRoom"
android:actionViewClass="android.widget.SearchView" />

大家注意上面的两种方法中一个属性是actionLayout制定一个layout xml布局文件,一个是actionViewClass指定一个类,最终调用可以在Activity中响应onCreateOptionsMenu方法映射这个menu布局即可。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options, menu);
SearchViewsearchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
return super.onCreateOptionsMenu(menu);
}

收藏 赞 (4) 踩 (6)
上一篇:为什么Android中非UI线程中不能操作UI线程
Android中非UI线程中不能操作UI线程的详解 在Android的开发中,非UI线程不能操作UI线程中的控件,即UI是非线程安全的。 我在上一篇文章中这样说过: 它是非UI安全的,也就是说,不接受非UI线程的修改请求。当我们通过别的线程(非主线程或者说是非原始线程)来
下一篇:Android开发教程:SurfaceView使用实例
先上效果图如下: 效果图中,抛物线的动画即是由SurfaceView实现的。 需求: 1.实现抛物线动画 1.1 设计物理模型,能够根据时间变量计算出某个时刻图片的X/Y坐标。 1.2 将图片高频率(相比于UI线程的缓慢而言)刷新到界面中。这儿需要实现将脏界面清屏及刷新操