android系统自动浮动查询框的使用

   在android中浮动查询框的使用,开发如下:

package com.easyway.android.demo;


import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

/**
 * 针对android系统自动浮动查询框的使用
 * 应用如下:
 *    在你点击手机中”名片夹“,在最下方显示浮动查询框输入‘
 *    
 * @author longgangbai
 *
 */
public class FloatSearchBoxDemo extends Activity {
	private final int SEARCH_MENU = 1;

	/**
	 * 创建视图
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.main);
		//设置点击键盘弹出
		setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
		//设置响应的Intent
		handleSearchQuery(getIntent());
	}

	private void handleSearchQuery(Intent queryIntent) {
		final String queryAction = queryIntent.getAction();
		if (Intent.ACTION_SEARCH.equals(queryAction)) {
			onSearch(queryIntent);
		}
	}

	/**
	 * 
	 */
	@Override
	protected void onNewIntent(Intent intent) {
		setIntent(intent);
		handleSearchQuery(intent);
	}

	/**
	 * 获取查询的字符串 
	 * @param intent
	 */
	private void onSearch(Intent intent) {
		final String queryString = intent.getStringExtra(SearchManager.QUERY);
		Toast.makeText(this, queryString, Toast.LENGTH_LONG).show();
	}

	/**
	 * 添加一个可选的菜单 
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		boolean result = super.onCreateOptionsMenu(menu);
		menu.add(0, SEARCH_MENU, 0, getText(R.string.searchMenu)).setIcon(
				android.R.drawable.ic_menu_search);
		return result;
	}
    /**
     * 当点击查询按钮时候执行这个方法 
     * 
     */
	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		switch (item.getItemId()) {
		case SEARCH_MENU:
			onSearchRequested();
			return true;
		}
		return super.onMenuItemSelected(featureId, item);
	}

}

 

 

 

AndroidManifest.xml的配置:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.easyway.android.demo" android:versionCode="1"
	android:versionName="1.0">
	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<activity android:name="com.easyway.android.demo.FloatSearchBoxDemo" android:launchMode="singleTop" android:label="@string/app_name">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
			
			<intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
            <!-- 搜索的界面 -->
            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
		</activity>
		<!--声名在本应用程序中都可以调用onSearchRequested()进行搜索-->
		<meta-data
            android:name="android.app.default_searchable"
            android:value=".FloatSearchBoxDemo" /> 
	</application>
	<uses-sdk android:minSdkVersion="4" />

</manifest> 

 

你可能感兴趣的:(android)