zoukankan      html  css  js  c++  java
  • 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);
                    }

     

  • 相关阅读:
    poj 1061 青蛙的约会 ——扩展欧几里得
    2013年4月4日 雨
    hdu3555 Bomb ——数位DP入门题
    2013年4月6日四校联赛总结
    speedcell's SPFA
    nefu118 n!后面有多少个0 数论
    zoj 3409 KKV
    uva 11991 Easy Problem from Rujia Liu?
    zoj 1649 Rescue ——BFS入门题
    poj 3233 Matrix Power Series ——矩阵快速幂+二分求解
  • 原文地址:https://www.cnblogs.com/zyh-blog/p/3343636.html
Copyright © 2011-2022 走看看