⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchinvoke.java

📁 Android的应用实例
💻 JAVA
字号:
/*  * Copyright (C) 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.example.android.apis.app;import com.example.android.apis.R;import android.app.Activity;import android.app.AlertDialog;import android.app.SearchManager;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.Spinner;import android.widget.AdapterView.OnItemSelectedListener;public class SearchInvoke extends Activity{          // UI elements    Button mStartSearch;    Spinner mMenuMode;    EditText mQueryPrefill;    EditText mQueryAppData;            // Menu mode spinner choices        // This list must match the list found in samples/ApiDemos/res/values/arrays.xml    final static int MENUMODE_SEARCH_KEY = 0;    final static int MENUMODE_MENU_ITEM = 1;    final static int MENUMODE_TYPE_TO_SEARCH = 2;    final static int MENUMODE_DISABLED = 3;        /**      * Called with the activity is first created.     *      *  We aren't doing anything special in this implementation, other than     *  the usual activity setup code.      */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                // Inflate our UI from its XML layout description.        setContentView(R.layout.search_invoke);                // Get display items for later interaction        mStartSearch = (Button) findViewById(R.id.btn_start_search);        mMenuMode = (Spinner) findViewById(R.id.spinner_menu_mode);        mQueryPrefill = (EditText) findViewById(R.id.txt_query_prefill);        mQueryAppData = (EditText) findViewById(R.id.txt_query_appdata);                // Populate items        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(                            this, R.array.search_menuModes, android.R.layout.simple_spinner_item);        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        mMenuMode.setAdapter(adapter);                // Create listener for the menu mode dropdown.  We use this to demonstrate control        // of the default keys handler in every Activity.  More typically, you will simply set        // the default key mode in your activity's onCreate() handler.        mMenuMode.setOnItemSelectedListener(            new OnItemSelectedListener() {                public void onItemSelected(                        AdapterView<?> parent, View view, int position, long id) {                    if (position == MENUMODE_TYPE_TO_SEARCH) {                        setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);                    } else {                        setDefaultKeyMode(DEFAULT_KEYS_DISABLE);                    }                }                public void onNothingSelected(AdapterView<?> parent) {                    setDefaultKeyMode(DEFAULT_KEYS_DISABLE);                }            });                // Attach actions to buttons        mStartSearch.setOnClickListener(            new OnClickListener() {                public void onClick(View v) {                    onSearchRequested();                }            });    }        /**      * Called when your activity's options menu needs to be updated.      */    @Override    public boolean onPrepareOptionsMenu(Menu menu) {        super.onPrepareOptionsMenu(menu);        MenuItem item;                    // first, get rid of our menus (if any)        menu.removeItem(0);            // next, add back item(s) based on current menu mode        switch (mMenuMode.getSelectedItemPosition())        {        case MENUMODE_SEARCH_KEY:            item = menu.add( 0, 0, 0, "(Search Key)");            break;                    case MENUMODE_MENU_ITEM:            item = menu.add( 0, 0, 0, "Search");            item.setAlphabeticShortcut(SearchManager.MENU_KEY);            break;                    case MENUMODE_TYPE_TO_SEARCH:            item = menu.add( 0, 0, 0, "(Type-To-Search)");            break;                    case MENUMODE_DISABLED:            item = menu.add( 0, 0, 0, "(Disabled)");            break;        }        return true;    }        /** Handle the menu item selections */    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {        case 0:            switch (mMenuMode.getSelectedItemPosition()) {            case MENUMODE_SEARCH_KEY:                new AlertDialog.Builder(this)                    .setMessage("To invoke search, dismiss this dialog and press the search key" +                                " (F5 on the simulator).")                    .setPositiveButton("OK", null)                    .show();                break;                            case MENUMODE_MENU_ITEM:                onSearchRequested();                break;                            case MENUMODE_TYPE_TO_SEARCH:                new AlertDialog.Builder(this)                    .setMessage("To invoke search, dismiss this dialog and start typing.")                    .setPositiveButton("OK", null)                    .show();                break;                            case MENUMODE_DISABLED:                new AlertDialog.Builder(this)                    .setMessage("You have disabled search.")                    .setPositiveButton("OK", null)                    .show();                break;            }            break;        }             return super.onOptionsItemSelected(item);    }        /**     * This hook is called when the user signals the desire to start a search.     *      * By overriding this hook we can insert local or context-specific data.     *      * @return Returns true if search launched, false if activity blocks it     */    @Override    public boolean onSearchRequested() {        // If your application absolutely must disable search, do it here.        if (mMenuMode.getSelectedItemPosition() == MENUMODE_DISABLED) {            return false;        }                // It's possible to prefill the query string before launching the search        // UI.  For this demo, we simply copy it from the user input field.        // For most applications, you can simply pass null to startSearch() to        // open the UI with an empty query string.        final String queryPrefill = mQueryPrefill.getText().toString();                // Next, set up a bundle to send context-specific search data (if any)        // The bundle can contain any number of elements, using any number of keys;        // For this Api Demo we copy a string from the user input field, and store        // it in the bundle as a string with the key "demo_key".        // For most applications, you can simply pass null to startSearch().        Bundle appDataBundle = null;        final String queryAppDataString = mQueryAppData.getText().toString();        if (queryAppDataString != null) {            appDataBundle = new Bundle();            appDataBundle.putString("demo_key", queryAppDataString);        }                // Now call the Activity member function that invokes the Search Manager UI.        startSearch(queryPrefill, false, appDataBundle, false);                 // Returning true indicates that we did launch the search, instead of blocking it.        return true;    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -