android应用中的搜索功能怎么实现的

android应用中的搜索功能怎么实现的,第1张

在APP应用中启用搜索

在app应用中,至少要执行如下的三个步骤,才能让app应用能够进行检索。如果要提供搜索建议,还需要执行第4步:

编写搜索配置的XML文件

编写搜索的activity类

在Android的manifest.xml文件中,对两面两个步骤的工作进行配置。

如果要使用搜索建议,则需要增加一个contentprovider。

配置搜索的XML配置文件

首先看下如何配置搜索的XML配置文件。先命名配置文件名称为searchable.xml,保存在res/xml文件夹中。然后需要设置搜索框的文本,并且应该增加一个hint的提示文本信息,如下代码所示:

<searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/search_label">android:hint="@string/search_hint" </searchable>

关于搜索配置文件有很多的配置选项,建议参考Android的手册可以获得更多:

http://developer.android.com/guide/topics/search/searchable-config.html。

增加搜索的Activity

当用户进行搜索时,Android调用activity进行搜索,代码如下:

publicclass SampleSearchActivity extends ListActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)handleIntent(getIntent())}public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) handleIntent(getIntent()) } public void onNewIntent(Intent intent) { setIntent(intent) handleIntent(intent) } public void onListItemClick(ListView l, View v, int position, long id) { // 点每个搜索结果时的处理代码 } private void handleIntent(Intent intent) { if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY) doSearch(query) } } private void doSearch(String queryStr) { //执行真正的查询结果处理 } }

在上面的代码中,在handleIntent方法中,当按下搜索按钮,系统就会自动发送Intent,action是Intent.ACTION_SEARCH,然后通过intent.getStringExtra(SearchManager.QUERY)获得要搜索的字符串。

其中为什么要包含onNewIntent()方法呢?主要是因为Android的back后退机制。Android会默认把每一个新的activity放到activity栈的顶部。如果用户点了后退键,则会关闭栈顶部的activity。尝试考虑一种情况,用户搜索一个内容并且系统列出了结果,如果用户发现结果不是他所要的,或者希望重新检索,则会重新点击搜索按键,这样将会产生一个新的搜索activity的实例,在activity栈中就会有两个搜索的activity,这是开发者并不期待的,所以,需要将这个搜索的activity声明为singleTop类型的activity,这样的话,无论用户按返回键还是尽心个多次的搜索,在acitivty栈中始终保持的是一个搜索activity的实例。因为当activity被设置为singleTop的加载模式时,如果堆栈的顶部已经存在了该Activity,那么,它便不会重新创建,而是调用onNewIntent。如果,该Activity存在,但不是在顶部,那么该Activity依然要重新创建。

mainifest配置文件

接下来,需要对manifest配置文件进行配置,必须要对其中进行如下配置:

搜索的activity.

使用搜索的intent

activity启动模式

searchable.xml中的元数据

更多的定义搜索的元数据

下面是典型的一个搜索的配置

<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".YourApp" ><meta-data android:name="android.app.default_searchable" android:value=".YourSearchActivity" /><activity android:label="@string/app_name" android:launchMode="singleTop" android:name=".YourSearchActivity" ><intent-filter ><action android:name="android.intent.action.SEARCH" /></intent-filter><intent-filter ><action android:name="android.intent.action.VIEW" /></intent-filter><meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /></activity></application>

在上面的典型配置中,要注意如下几点:

1)由于当调用搜索activity时,Android调用的是android.intent.action.SEARCH作为搜索的intent,所以必须在intent-filter中包含android.intent.action.SEARCH。

2)在<meta-data>中,指出了searchable.xml的位置

3)同样在<meta-data>中,通过:

<meta-data android:name="android.app.default_searchable" android:value=".YourSearchActivity" />

指出了当执行搜索的字符串提交时,将调用哪一个activity去进行处理。

谢谢兄弟,我需要先提交检索关键词BAG73500BAA87885BAH12888等到网站

http://www.ncbi.nlm.nih.gov/protein

检索,然后从返回的网页提取那些内容。检索词最好放在一个文本文件query中。

一、对IE浏览器产生破坏的网页病毒:

(一).默认主页被修改

1.破坏特性:默认主页被自动改为某网站的网址。

2.表现形式:浏览器的默认主页被自动设为如********.COM的网址。

3.清除方法:采用手动修改注册表法,开始菜单->运行->regedit->确定,打开注册表编辑工具,按顺序依次打开:HKEY_LOCAL_USER\Software\Microsoft\Internet Explorer\Main 分支,找到Default_Page_URL键值名(用来设置默认主页),在右窗口点击右键进行修改即可。按F5键刷新生效。

危害程度:一般

(二).默认首页被修改

1.破坏特性:默认首页被自动改为某网站的网址。

2.表现形式:浏览器的默认主页被自动设为如********.COM的网址。

3.清除方法:采用手动修改注册表法,开始菜单->运行->regedit->确定,打开注册表编辑工具,按如下顺序依次打开:HKEY_LOCAL_USER\Software\Microsoft\Internet Explorer\Main分支,找到StartPage键值名(用来设置默认首页),在右窗口点击右键进行修改即可。按F5键刷新生效。

危害程度:一般

(三).默认的微软主页被修改

1.破坏特性:默认微软主页被自动改为某网站的网址。

2.表现形式:默认微软主页被篡改。

3.清除方法:

(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,按如下顺序依次打开:HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main 分支,找到Default_Page_URL键值名(用来设置默认微软主页),在右窗口点击右键,将键值修改为 http://www.microsoft.com/windows/ie_intl/cn/start/ 即可。按F5键刷新生效。

(2)自动文件导入注册表法:请把以下内容的任意文件名存在C盘的任一目录下,然后执行此文件,根据提示,一路确认,即可显示成功导入注册表。

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main] "default_page_url"="http://www.microsoft.com/windows/ie_intl/cn/start/"

危害程度:一般

四).主页设置被屏蔽锁定,且设置选项无效不可更改

1.破坏特性:主页设置被禁用。

2.表现形式:主页地址栏变灰色被屏蔽。

3.清除方法:

(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,按如下顺序依次打开:HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\分支,新建“ControlPanel”主键,然后在此主键下新建键值名为“HomePage”的DWORD值,值为“00000000”,按F5键刷新生效。

(2)自动文件导入注册表法:请把以下内容输入或粘贴复制到记事本内,以扩展名为reg的任意文件名存在C盘的任一目录下,然后执行此文件,根据提示,一路确认,即可显示成功导入注册表。

REGEDIT4

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel] "HomePage"=dword:00000000

危害程度:轻度

(五).默认的IE搜索引擎被修改

1.破坏特性:将IE的默认微软搜索引擎更改。

2.表现形式:搜索引擎被篡改。

3.清除方法:

(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,第一,按如下顺序依次打开:HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Search分支,找到“SearchAssistant”键值名,在右面窗口点击“修改”,即可对其键值进行输入为: http://ie.search.msn.com/{SUB_RFC1766}/srchasst/srchasst.htm ,然后再找到“CustomizeSearch”键值名,将其键值修改为: http://ie.search.msn.com/{SUB_RFC1766}/srchasst/srchasst.htm ,按F5键刷新生效。

(2)自动文件导入注册表法:请把以下内容输入或粘贴复制到记事本内,以扩展名为reg的任意文件名存在C盘的任一目录下,然后执行此文件,根据提示,一路确认,即可显示成功导入注册表。

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Search] "SearchAssistant"="http://ie.search.msn.com/{SUB_RFC1766}/srchasst/srchasst.htm" "CustomizeSearch"="http://ie.search.msn.com/{SUB_RFC1766}/srchasst/srchasst.htm"

危害程度:一般

(六).IE标题栏被添加非法信息

1.破坏特性:通过修改注册表,使IE标题栏被强行添加宣传网站的广告信息。

2.表现形式:在IE顶端蓝色标题栏上多出了什么“正点网,即使正点网! http://www.zhengdian.com "尾巴。

3.清除方法:

(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,第一,按如下顺序依次打开:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main分支,找到“Window Title”键值名,输入键值为Microsoft Internet Explorer,按F5刷新。

第二,按如下顺序依次打开:HKEY_CURRENT_MACHINE\Software\Microsoft\InternetExplorer\Main分支,找到“Window Title”键值名,输入键值为Microsoft Internet Explorer,按F5刷新生效。

(2)自动文件导入注册表法:请把以下内容输入或粘贴复制到记事本内,以扩展名为reg的任意文件名存在C盘的任一目录下,然后执行此文件,根据提示,一路确认,即可显示成功导入注册表。

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]"Window Title"="Microsoft Internet Explorer"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main]"Window Title"="Microsoft Internet Explorer"

危害程度:一般

(七).OE标题栏被添加非法信息破坏特性:

破坏特性:通过修改注册表,在微软的集成电子邮件程序Microsoft Outlook顶端标题栏添加宣传网站的广告信息br]

表现形式:在顶端的Outlook Express蓝色标题栏添加非法信息。

清除方法:(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,按如下顺序依次打开:HKEY_LOCAL_USER\Software\Microsoft\Outlook Express分支,找到WindowTitle以及Store Root键值名,将其键值均设为空。按F5键刷新生效。

(2)自动文件导入注册表法:请把以下内容输入或粘贴复制到记事本内,以扩展名为reg的任意文件名存在C盘的任一目录下,然后执行此文件,根据提示,一路确认,即可显示成功导入注册表。

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Outlook Express]"WindowTitle"="""Store Root"=""

危害程度:一般

(八).鼠标右键菜单被添加非法网站链接:

1.破坏特性:通过修改注册表,在鼠标右键d出菜单里被添加非法站点的链接。

2.表现形式:添加“网址之家”等诸如此类的链接信息。

3.清除方法:(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,按如下顺序依次打开:HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\MenuExt分支,在左边窗口凡是属于非法链接的主键一律删除,按F5键刷新生效。

4.危害程度:一般

(九).鼠标右键d出菜单功能被禁用失常:

1.破坏特性:通过修改注册表,鼠标右键d出菜单功能在IE浏览器中被完全禁止。

2.表现形式:在IE中点击右键毫无反应。

3.清除方法:

(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,按如下顺序依次打开:HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions分支,找到“NoBrowserContextMenu”键值名,将其键值设为“00000000”,按F5键刷新生效。

(2)自动文件导入注册表法:请把以下内容输入或粘贴复制到记事本内,以扩展名为reg的任意文件名存在C盘的任一目录下,然后执行此文件,根据提示,一路确认,即可显示成功导入注册表。

REGEDIT4

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions] "NoBrowserContextMenu"=dword:00000000

危害程度:轻度

(十).IE收藏夹被强行添加非法网站的地址链接

破坏特性:通过修改注册表,强行在IE收藏夹内自动添加非法网站的链接信息。

表现形式:躲藏在收藏夹下。

清除方法:请用手动直接清除,用鼠标右键移动至该非法网站信息上,点击右键d出菜单,选择删除即可。

危害程度:一般

十一).在IE工具栏非法添加按钮

破坏特性:工具栏处添加非法按钮。

表现形式:有按钮图标。

清除方法:直接点击鼠标右键d出菜单,选择“删除”即可。

危害程度:一般

(十二).锁定地址栏的下拉菜单及其添加文字信息

破坏特性:通过修改注册表,将地址栏的下拉菜单锁定变为灰色。

表现形式:不仅使下拉菜单消失,而且在其上覆盖非法文字信息。

清除方法:(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,按如下顺序依次打开:HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Toolbar分支,在右边窗口找到“LinksFolderName”键值名,将其键值设为“链接”,多余的字符一律去掉,按F5键刷新生效。

危害程度:轻度

(十三).IE菜单“查看”下的“源文件”项被禁用

破坏特性:通过修改注册表,将IE菜单“查看”下的“源文件”项锁定变为灰色。

表现形式:“源文件”项不可用。

清除方法:

(1)手动修改注册表法:开始菜单->运行->regedit->确定,打开注册表编辑工具,第一,按如下顺序依次打开:HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions分支,找到"NoViewSource"键值名,将其键值设为“00000000”,按F5键刷新生效。

按如下顺序依次打开:HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Restrictions分支,找到"NoViewSource"键值名,将其键值设为“00000000”,按F5键刷新生效。

(2)自动文件导入注册表法:请把以下内容输入或粘贴复制到记事本内,以扩展名为reg的任意文件名存在C盘的任一目录下,然后执行此文件,根据提示,一路确认,即可显示成功导入注册表。

REGEDIT4

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions] "NoViewSource"=dword:00000000

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Restrictions] "NoViewSource"=dword:00000000


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11959369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存