【Android开发Wiki】进阶篇添加搜索功能-Adding Search Functionality(一):设置搜索界面
Android实现模拟搜索功能

Android实现模拟搜索功能本⽂实例为⼤家分享了Android实现模拟搜索功能的具体代码,供⼤家参考,具体内容如下先看效果图,合适了再接着往下看:我们看到的这个页⾯,是由两部分组成,顶部的⾃定义的搜索框,和listView组成。
⾸先我们来实现布局页⾯,⾃定义搜索框,和设置listView<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".SearchBoxActivity"android:orientation="vertical"><EditTextandroid:id="@+id/et_search"android:layout_width="match_parent"android:layout_height="40dp"android:hint="搜索名称"android:background="@drawable/btn_search"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_marginTop="10dp"android:maxLines="1"android:maxLength="20"android:inputType="text"android:drawableLeft="@drawable/search"/><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout>其中EditeText控件中的 android:background="@drawable/btn_search"这个btn_search.xml 是在drawable⽬录下定义的。
【Android开发Wiki】进阶篇内容共享-Sharing Content从其他应用程序接收内容

eoe 移动开发者社区
/
为了处理从 Intent 传过来的数据,可以通过调用 getIntent()方法来获取到 Intent 对象。 一旦获取该对象,就可以对里面的数据进行判断,从而决定下一步应该做什么。请记住, 如 果一个 activity 可以被其他的程序启动,你需要在检查 intent 的时候考虑这种情况。 1 void onCreate (Bundle savedInstanceState) { 2 ... 3 // Get intent, action and MIME type 4 Intent intent = getIntent(); 5 String action = intent.getAction(); 6 String type = intent.getType(); 7 8 if (Intent.ACTION_SEND.equals(action) && type != null) { 9 if ("text/plain".equals(type)) { 10 handleSendText(intent); // Handle text being sent 11 } else if (type.startsWith("image/")) { 12 handleSendImage(intent); // Handle single image being sent 13 } 14 } else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) { 15 if (type.startsWith("image/")) { 16 handleSendMultipleImages(intent); // Handle multiple images being 17 sent 18 } 19 } else { 20 // Handle other intents, such as being started from the home screen 21 } 22 ... 23 } 24 25 void handleSendText(Intent intent) { 26 String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT); 27 if (sharedText != null) { 28 // Update UI to reflect text being shared 29 } 30 } 31 32 void handleSendImage(Intent intent) { 33 Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); 34 if (imageUri != null) { 35 // Update UI to reflect image being shared 36 } 37 } 38 39 void handleSendMultipleImages(Intent intent) {
【Android开发Wiki】进阶篇内容共享-Sharing Content添加一个简单的共享行动

图像-1 Gallery 应用中的 ShareActionProvider 从 ShareActionProvider 开始。在 menu resource 文件对应的<font color”green”><it em> android:actionProviderClass</font>属性。 <menu xmlns:android="/apk/res/android"> 1 <item android:id="@+id/menu_item_share" 2 android:showAsAction="ifRoom" 3 android:title="Share" 4 android:actionProviderClass="android.widget.ShareActionProvider" /> 5 ... 6 </menu> 7
也许只要当创建菜单是需要设置分享 Intent,或者当 UI 发生变化时设置并更新分享 Intent。 比如在 Gallery 应用中全屏观看图片,当在图片之间点击是,分享 Intent 就会发生变化。 关于 ShareActionProvider 的进一步讨论,查看 Action Bar。
文章来源:/page/Adding_an_Easy_Share_Action
这 就 将 菜 单 项 的 外 观 和 功 能 委 托 给 了 ShareActionProvider, 但 是 应 该 告 知 ShareActionProvider 那些是要被分享的。 设置分享 I
为了使 ShareActionProvider 发挥功能,必须提供一个分享的 Intent.这个 Intent 必须和 在 Sending Content to Other Apps 中描述的 Intent 一致(使用 ACTION SEND,通过 EXTR A TEXT、EXTRA STREAM 添加数据) 。部署一个分享的 Intent,首先填充菜单时,要在 Activ ity 或者 Fragment 中找到对应的菜单项,然后调用 MenuItem.getActionProvider()获得 Sh areActionProvider 的实例。使用 setShareIntent()更新和活动项相关的分享 Intent。示 例如下: 1 private ShareActionProvider mShareActionProvider; 2 ... 3 4 @Override 5 public boolean onCreateOptionsMenu(Menu menu) { 6 //填充菜单 7 getMenuInflater().inflate(R.menu.share_menu, menu); 8 9 //定位使用 ShareActionProvider 的菜单项 10 MenuItem item = menu.findItem(R.id.menu_item_share); 11 12 // 获取和存储 ShareActionProvider 13 mShareActionProvider = (ShareActionProvider) item.getActionProvider(); 14 15 //返回 true,显示菜单 16 return true; 17 } 18 19 // 更新 分享 Intent 20 private void setShareIntent(Intent shareIntent) { 21 if (mShareActionProvider != null) { 22 mShareActionProvider.setShareIntent(shareIntent); 23 } 24 }
为Android应用添加搜索功能

在本系列共两篇的教程中,将指导开发者如何利用Android的搜索框架进行搜索功能的开发。
在第一篇就是本文中,将让开发者了解Android的搜索框架,在第二篇教程中,将展示关于搜索建议和全局搜索整合到app应用中去。
本地搜索VS 全局搜索我们先来看下在Android的搜索框架中,本地搜索和全局搜索两个概念和它们之间的区别。
本地搜索:指的是由app应用本身提供的搜索功能,这对任何的app应用都应该最好提供这样的功能,比如一个食谱的app应用应该能让用户在这个应用中根据关键字去进行搜索。
本地搜索是在某一app内进行的,不同的app应用之间不能进行互相的搜索。
全局搜索另一方面,全局搜索能让用户在主屏幕中通过快速搜索框根据关键字,在各app中展开相关的搜索,Android使用了多种数据源来为全局搜索提供帮助。
比如下图中,展示了在Android平板系统中,可以看到左边部分是用户输入的搜索内容,使用的是google的搜索,检索出来的结果中,甚至能包含用户机器上安装的app应用的标题,它们展示在右边。
用户对于全局搜索的体验是跟本地搜索的是完全不同的。
全局搜索的功能中,可以使用google进行搜索,搜索的范围包括安装到本地机器的app应用,通讯录等,甚至包括某些允许使用全局搜索的app的检索结果。
下图中,展示的是可以进行全局搜索的数据来源,可以看到包括了web,各app应用,音乐,消息和通讯录。
可以看到,一个好的app应用,应该尽可能在上图中出现,这样用户在搜索时,才会优先考虑对其进行检索,更方便用户的操作。
在本教程的第2篇中,将更详细指导用户如何去进行全局检索。
在APP应用中启用搜索在app应用中,至少要执行如下的三个步骤,才能让app应用能够进行检索。
如果要提供搜索建议,还需要执行第4步:1编写搜索配置的XML文件2编写搜索的activity类3在Android的manifest.xml文件中,对两面两个步骤的工作进行配置。
AndroidStudio搜索功能(查找功能)及快捷键图文详解

AndroidStudio搜索功能(查找功能)及快捷键图⽂详解1、在当前窗⼝查找⽂本【Ctrl+F】
F3 向下查找关键字出现位置
Shift+F3 向上⼀个关键字出现位置
2、在当前⼯程内查找⽂本【Ctrl+Shift+F】
先会弹出⼀个对话框,直接点击【find】,开始在整个⼯程内查找该字符串
查找结果如下:
3、查找类【Ctrl+N】
4、查找⽂件【Ctrl+Shift+N】
5、查找项⽬中的⽅法或变量【Ctrl+Shift+Alt+N】
6、查找类/⽅法/变量引⽤的地⽅
先定位光标
右键选择“Find Usages”(快捷键Alt+F7)
结果在find窗⼝中
ctrl+F7就是该⽅法在当前类中的被使⽤到的地⽅7、ctrl + o 查看所有可以重写的⽅法。
8、在类中快速定位某个⽅法或属性Ctrl+F12
总结
以上所述是⼩编给⼤家介绍的Android Studio搜索功能(查找功能)及快捷键图⽂详解,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。
Android开发教程之Android系统搜索对话框(浮动搜索框)的使用

手机软件开发培训第一品牌
搜索框配置文件是一个用来配置您的应用程序中搜索框的设置的XML文件,这个 文件一般命名为searchable.xml,并且必须保存在项目的res/xml/目录下。 配置文件的根节点必须为,可以有一个或多个属性。如下图所示: <?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="/apk/res/android" android:label="@string/searchLabel" android:hint="@string/searchHint"> </searchable> 上面的配置文件中,除android:hint属性外,其它都是一个搜索对话框必须的配 置项,android:label是一个必须的属性,它的值为一个string资源引用,不能直 接用字符串,通常会是应用程序的名称(尽管它是一个必须的属性,但通常情况 下是不显示出来的,除非你开启了搜索建议功能)。android:hint是配置搜索框 的输入提示信息,也必须引用string.xml中配置的字符串资源,不能直接使用字 符串。 可以配置很多的属性,但大部分属性都只是在使用搜索建议和语音搜索时进行配 置,尽管如此,我们建议你一定要配置android:hint,用于提示用户需要输入的信 息。 接下来,你需要把这个配置文件放到你的应用程序中。
手机软件开发培训第一品牌
你可以从应用程序中的任何一个地方调用onSearchRequested()方法激活搜索框,比如从菜 单中或者一个按钮等。你也要以在onCreate()方法中调用 setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL),这样,当用户按下键盘上的按键 时,将会自动激活搜索框。 搜索框和普通对话框一样,浮动在屏幕的最上方,它不会改变任何Activity堆栈状态,没有 任何Activity生命周期中的方法会被调用,只是当搜索框出现就,正在运行的Activity会失去 输入焦点。 如果你要在执行搜索时,进行别的操作,可以重写onSearchRequested()方法,如下所示: @Override public boolean onSearchRequested() { //这个方法中干你想干的事,比如做一些被始化工作 pauseSomeStuff(); return super.onSearchRequested(); } 如果当前的Activity就是响应搜索请求的Activity时,会有以下两种情况: 默认情况下,ACTION_SEARCH Intent将会创建一个新的Activity,并调用onCreate()方法, 这个新的Activity会显示在最前面,你将同时有两个Activity实例。当你按“返回”键里,会回 到没有执行搜索前的一个Activity。 另一种情况是配置了android:launchMode=”singleTop”的Activity,这时,我们需要 在 onNewIntent(Intent)方法中处理搜索请求,如下所示:
【Android开发Wiki】进阶篇设计高效的应用导航—把它们放在一起:把APP例子用线框图圈起来

组合:为范例应用创建框架现在,我们对导航的模式和屏幕分组技术有了有深入地理解,是时候把它们组合起来并应用到我们的屏幕上了。
让我们再看一眼这个新闻应用范例的完整的屏幕地图。
下一步,我们要做的是从前文讨论过的导航模式中选择一种并应用到这个屏幕地图上,使用Anroid最佳实践方式,最大化导航速度,最小化触屏次数,同时保持接口的直观与统一。
我们也应该考虑不同设备的屏幕尺寸不一这个因素,做出相应的不同的选择。
为了简单起见,让我们专注于平板和手持制备(手机)。
-Choose Patterns选择模式选择模式-Choose首先,我们的第二层屏幕(故事分类列表,照片列表,以及保存的项目列表)可以使用标签(tabs)统一分组。
注意,我们并不一定需要使用水平排列的标签(tabs);在一些情况下,下拉列表UI元素可以作为合适的代替使用,特别是当设备的屏幕非常窄时,如一些手机。
我们也可以把,保存的图片列表,保存的故事列表组合起来,在手机用使用标签(tabs)显示,或是是平板上使用多个垂直的内容面板显示。
最后,让我们考虑一下怎么呈现新闻故事。
为了简化不同故事分类之就的导航,第一个可选方案是使用水平颁页,并在横向滑动面上使用一系列的标签(labels),指示当前可见的页面以及相临地可访问的分类。
在平板上,当水平显示时,我们可以多做一步,在屏幕左边添加一个面板显示水平可分页的故事列表,而故事视图则作为主要内容显示在屏幕右边。
下图展示了使用这种导航模式后手机以及平板上新的屏幕地图。
到目前为止,思考一下屏幕地图的变化是一个很好的主意,这样做是为了防止在实践中(当你草绘应用的屏幕布局时)你的选择不能很好的被应用。
下图是一个屏幕地图变化的范例,其展示的是在平板上并排地显示不同分类的故事列表,而故事视力则保持独立。
-Sketch and Wireframe素描和线框-Sketch素描和线框绘制线框图是你开始为你的屏幕布局时的第一步。
有创意地开始想象怎么样安排UI元素来允许用户在你的应用种进行导航。
android geckoview 用法

android geckoview 用法Android Geckoview是Mozilla Firefox浏览器的一个组件,它提供了一个基于Firefox引擎的浏览器视图,可以用于在Android应用程序中嵌入浏览器功能。
Geckoview提供了一些API,可以让开发者在应用程序中使用浏览器功能,例如加载网页、处理用户输入、管理历史记录等等。
本文将介绍Geckoview的用法,包括如何集成Geckoview到Android应用程序中、如何使用Geckoview 提供的API实现浏览器功能。
一、集成Geckoview到Android应用程序中1. 添加依赖在项目的build.gradle文件中添加以下依赖:implementation 'org.mozilla.geckoview:geckoview:89.0.0'2. 创建Geckoview视图在布局文件中添加Geckoview视图:<org.mozilla.geckoview.GeckoViewandroid:id="@+id/geckoview"android:layout_width="match_parent"android:layout_height="match_parent" />3. 初始化Geckoview在Activity或Fragment中初始化Geckoview:GeckoView geckoView = findViewById(R.id.geckoview); GeckoRuntimeSettings.Builder builder = new GeckoRuntimeSettings.Builder();GeckoRuntime geckoRuntime = GeckoRuntime.create(this, builder.build());geckoView.setGeckoRuntime(geckoRuntime);二、使用Geckoview提供的API实现浏览器功能1. 加载网页使用Geckoview加载网页非常简单,只需要调用GeckoSession的loadUri方法即可:GeckoSession geckoSession = new GeckoSession();geckoSession.open(geckoRuntime);geckoSession.loadUri("2. 处理用户输入Geckoview提供了一些API,可以让开发者处理用户输入,例如处理URL、搜索关键字等等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原文连接:
/training/search/setup.html
从Android3.0开始,使用SearchView部件作为工具栏中的搜索部件,是您的应用程序的首选方式。
和工具栏中的所有项目一样,只要有有空间,你可以定义SearchView显示在任何时候,或作为一个可折叠的活动,显示为一个图标,当用户点击它时,最初的Search View将占据整个工具栏用来搜索字段。
注:在这个类中,您将学习如何使您的不支持SearchView应用程序向下兼容的设备到An droid 2.1(API 7级)。
向工具栏添加搜索视图
要向工具栏添加一个的SearchView部件,可以在您的项目种创建一个名为res/menu/op tions_menu.xml文件,并添加下面的代码到该文件。
此代码定义了如何创建搜索项目,比如该项目要使用的图标和标题。
collapseActionView的属性可以让你的SearchView扩展到了整个工具栏,在不使用时又可以折叠回一个正常的工具栏项目。
由于手持设备的工具栏空间有限,建议您使用collapsibleActionView属性来获得更好的用户体验。
注:如果你已经有一个XML文件菜单项,你可以向该文件中添加<item>元素替代。
注:如果您的可搜索活动以单顶模式(android:launchMode="singleTop")启动的话,也可以在onNewIntent()方法中处理ACTION_SEARCH意图。
在单顶模式下,您的活动只有一个实例被创建,随后被调用来启动你的活动而不在栈上创建一个新的活动。
这种启动模式是非常有用的,用户可以从相同的活动执行搜索,而无需每次都创建一个新的活动。
文章来源:/page/Setting_Up_the_Search_Interface。