• 017、SearchManager的使用


    SearchManager是Android提供搜索的API
    使用SearchManager对象,必须先在AndroidManifest.xml文件里面编写<intent-filter>,使之可以过滤“android.intent.action.SEARCH”广播信息,再在应用程序中建立SearchManager对象。
    在AndroidManifest.xml文件中的配置:
            <activity
                android:name="com.example.ex_4_29_searchmanager.MainActivity"
                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" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
                <meta-data
                    android:name="android.app.searchable"
                    android:resource="@xml/searchable" />
            </activity>

     

    其中,引用的android:resource="@xml/searchable" 文件如下:
    <searchable xmlns:android="http://schemas.android.com/apk/res/android"
        android:hint="@string/search_hint"
        android:label="@string/search_label" />

     

    在应用程序代码中的使用:
            // 需要在AndroidManifest.xml文件里先添加SEARCH的intent-filter
            Intent intent = getIntent();
            // 取得当按下搜索时的Intent
            if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
                // 取得欲搜索的字符串
                String extra = intent.getStringExtra(SearchManager.QUERY);
                queryPicture(extra);
            }
            // 设置后,点击键盘会弹出搜索框
            setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);

    上例是是搜索本地数据,也可以实现对网络数据的搜索,代码如下:

                    String trim = ((EditText) findViewById(R.id.et)).getText()
                            .toString().trim();
                    if (TextUtils.isEmpty(trim)) {
                        Toast.makeText(MainActivity.this, "得输入内容才可以搜索哦", 0).show();
                    } else {
                        //取得网页搜索的Intent
                        Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        //放入所要搜索的文字
                        intent.putExtra(SearchManager.QUERY, trim);
                        Bundle appData = getIntent().getBundleExtra(SearchManager.APP_DATA);
                        if(appData!=null){
                            intent.putExtra(SearchManager.APP_DATA, appData);
                        }
                        startActivity(intent);
                    }

     

  • 相关阅读:
    u盘安装ubuntu10.04 、11.04 server 分类: arm-linux-Ubuntu 2013-08-12 15:47 504人阅读 评论(0) 收藏
    linux下的framebuffer显示图片 分类: arm-linux-Ubuntu 2013-08-12 15:43 506人阅读 评论(0) 收藏
    Sql Server专题:SQL 经典实例
    1054 求平均值 (20 分)
    1052 卖个萌 (20 分)
    1053 住房空置率 (20 分)
    1050 螺旋矩阵 (25 分
    1051 复数乘法 (15 分)
    1049 数列的片段和 (20 分)
    1046 划拳 (15 分)
  • 原文地址:https://www.cnblogs.com/zyh-blog/p/3343636.html
Copyright © 2020-2023  润新知