Articles of android searchmanager

什么时候需要在Android小部件或应用程序中使用singleTop launchMode?

我被一个小部件烧毁了。 我可以看到问题的原因,但我无法确定原因或解决方案。 我的小部件发出了一个搜索(SearchManager),活动启动了一个搜索对话框,但当它回调到我的小部件时,它创建了另一个对小部件的引用(即,thread-id是相同的,但是widget-id从65变为0)。 这让我相信创建了一个新实例,并在文档中搜索了适用于该问题的设置。 最后,我偶然发现了android:launchMode=”singleTop” ,一旦我在AndroidManifest中设置它,中提琴! 我的小部件工作。 这花了我两天的调试时间。 还有其他任何情况,或者我的问题是否有更技术上更正确的答案?

SearchInfo总是空出来

我在操作栏中设置搜索视图时遇到问题。 我跟着开发者网站,但它不起作用。 我觉得我错过了什么。 当我运行我的代码时,它总是输出“无法获取可搜索的信息”(MainActivity.setupSearchView())。 MainActivity.java // package… // imports… public class MainActivity extends Activity { private static String tag = “Main Activity”; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.search_view, menu); setupSearchView(menu); return true; } private void setupSearchView(Menu menu) { SearchManager sm = […]

Android Actionbar Search小部件实现在ListFragment中

我目前的应用程序设置在左侧是DetailsFragment ,右侧是DetailsFragment (类似于下面平板电脑上的布局)。 在操作栏上,我有一个搜索小部件,当提交搜索词时,应该更新列表的内容(在ListFragment中)。 我一直在关注android dev( http://developer.android.com/guide/topics/search/search-dialog.html )上的搜索指南,但我在搜索更新同一活动中的列表时遇到问题。 我已经设法通过在提交搜索词时调用新活动来获得某种forms的实现,但是这使得后退按钮表现得很奇怪(即,您按下后退到前一个活动,搜索小部件仍然显示搜索词)。 我已将意图行添加到清单中,如下所示 是否可以让搜索小部件更新当前活动的列表?

androidsearch传递包

你好我使用的是Android 3.0的search部件 (不是search模式),问题是我需要传递一些参数,随着search词。 Android不会调用任何这些 searchManager.setOnDismissListener( new OnDismissListener() { @Override public void onDismiss() { // TODO Auto-generated method stub Log.v(MyApp.TAG, "on dismiss search"); } }); searchManager.setOnCancelListener( new OnCancelListener() { @Override public void onCancel() { // TODO Auto-generated method stub Log.v(MyApp.TAG, "on dismiss cancel"); } }); @Override public boolean onSearchRequested() { Bundle appData = new Bundle(); appData.putLong("listino_id", […]

Android的searchview从networking的build议

我在操作栏中有一个SearchView ,我想从服务中获取build议。 我已经看到了Android Samples Searchable Dictionary中的Samples Searchable Dictionary 。 但它正在从本地数据库加载结果。 我明白了,有必要使用Content Provider 。 但我想知道什么时候从Web服务获取结果。 我的意思是什么时候打networking电话。 请任何人都可以帮忙。

searchbuild议使用SUGGEST_COLUMN_ICON_1的url

我有一个SearchManager设置,在用户input时会显示build议下拉菜单。 结果来自我的服务器(http)。 我想显示每个选项的图标(如果文件实际上存在)。 看看文档,我看到了常量列SUGGEST_COLUMN_ICON_1选项允许这些选项: Column name for suggestions cursor. Optional. If your cursor includes this column, then all suggestions will be provided in a format that includes space for two small icons, one at the left and one at the right of each suggestion. The data in the column must be a resource ID of […]

如何使用默认浏览器在谷歌searchstring

我想实现一个searchfunction,打开默认的浏览器,并search传递的string public void searchOnGoogle(String keywords){ — } 有没有一种方法使用意向filter或我必须自己实现一切?

如果用户按下设备的searchbutton,则在ActionBar中显示SearchWidget

我按照Android API指南中的描述设置了一个SearchWidget。 它在操作栏中正确显示一个放大镜图标,如果点击它,它会在操作栏(具有深色背景的input字段)内启动search小部件。 但是,如果我按下虚拟设备的searchbutton,则会启动另一个search字段:它具有白色背景,不会调用我指定的callback方法。 所以我把这个添加到我的MainActivity类中: public boolean onSearchRequested() { SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); searchView.setIconified(!searchView.isIconified()); return false; } search小部件的设置与文档中描述的完全相同: SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(false); searchView.setOnQueryTextListener(new CustomSearchQueryTextListener()); 我的searchable.xml: <?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_name"> </searchable> 和AndroidManifest.xml: <activity android:name="MainActivity" android:label="@string/app_name" android:launchMode="singleTask" android:uiOptions="splitActionBarWhenNarrow" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> […]

Android应用程序中有多个SearchRecentSuggestionsProvider类可能?

我在我的应用程序中使用SearchManager实现了两个不同的search活动。 一个是默认search整个应用程序,另一个只用于一个活动。 这两个search将执行不同数据的查找,并且在两个不同的search中共享search历史logging是没有意义的。 两个不同的searchfunction在应用程序内function良好,我的问题是最近的search历史。 问题是在应用程序中定义了两个不同的SearchRecentSuggestionsProvider类,但在两个search的最近searchbuild议历史logging中都显示了一个search。 我已阅读开发指南中的SearchManager主题,但没有看到关于多个build议提供者的任何信息。 以下是AndroidManifest.xml中的两个提供程序,位于节点中: <provider android:name=".SearchOneRecentSuggestionsProvider" android:authorities="com.company.SearchOneRecentSuggestionsProvider"></provider> <provider android:name=".SearchTwoRecentSuggestionsProvider" android:authorities="com.company.SearchTwoRecentSuggestionsProvider"></provider> 这是在SearchOneRecentSuggestionsProvider.java中定义的类: package com.company; import android.content.SearchRecentSuggestionsProvider; public class SearchOneRecentSuggestionsProvider extends SearchRecentSuggestionsProvider { public final static String AUTHORITY = "com.company.SearchOneRecentSuggestionsProvider"; public final static int MODE = DATABASE_MODE_QUERIES; public SearchOneRecentSuggestionsProvider() { setupSuggestions(AUTHORITY, MODE); } } (SearchTwoRecentSuggestionsProvider类看起来完全一样,只是将Onereplace为Two,并且位于它自己的SearchTwoRecentSuggestionsProvider.java文件中。) 以下是searchbuild议数据库中的内容(位于/data/data/com.company/databases/suggestions.db): # sqlite3 suggestions.db SQLite version 3.5.9 Enter ".help" […]

多select可search的ListView

好吧,我有一个多选ListView,工作正常。 我检查的联系方式(保存在一个string[]),并可以返回罚款罚款。 因为有些人有很多联系人,所以我想创build一个search栏,就像Android电话簿中的一个。 我创build了一个EditText并将其排列在我的列表上方。 我在StackOverflow上find了这个过滤代码,它工作起来非常棒。 我的问题: 当您过滤某些名称并select名称时,如果从EditText退格或继续input,则不会保存所选名称的正确位置。 例如,如果我开始input“Adam”并select“Ada”并select它,如果我退格键入“Carol”,则select“Ada”所处的位置。 它从点击(比方说2)收集“Adam”的位置,当列表恢复时,检查该位置(2),即使Adam不在那里。 我需要一种方法来收集名称..然后当列表被恢复或重新search,名称亚当被检查,而不是位置亚当以前在。 除了创build大量的数组之外,我绝对没有任何想法,并且真的可以使用一些帮助。 以下是我使用的一些代码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.contacts_list); myListView = (ListView)findViewById(android.R.id.list); search_EditText = (EditText) findViewById(R.id.search_EditText); search_EditText.addTextChangedListener(filterTextWatcher); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, ContactsList); setListAdapter(adapter); myListView.setItemsCanFocus(false); getListView().setChoiceMode(2); myListView.setTextFilterEnabled(true); myListView.setFastScrollEnabled(true); myListView.invalidate(); } private TextWatcher filterTextWatcher = new TextWatcher() { public void afterTextChanged(Editable s) { } public […]