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);
                    }

     

  • 相关阅读:
    移动端html的overflow:hidden属性失效问题
    js获取url传递参数,js获取url?号后面的参数
    zoom和transform:scale的区别
    css媒体查询来书写二倍图三倍图设置
    ajax和promise的结合使用
    react-router 嵌套路由 内层route找不到
    antd中按需加载使用react-app-rewired报错
    ts+antd报错error TS2605: JSX element type Xxx is not a constructor function for JSX elements
    在taro中跳转页面的时候执行两遍componentDidMount周期的原因和解决方法
    HDU 4602 Partition (矩阵乘法)
  • 原文地址:https://www.cnblogs.com/zyh-blog/p/3343636.html
Copyright © 2011-2022 走看看