If it is not possible to use the floating window for the results, then it would be at least good to know that. It wouldn't make much sense from my perspective, as the BACK button also brings up the dialog, but then I would implement my own implementation.
On Sun, Oct 18, 2009 at 9:14 AM, Mariano Kamp <mariano.kamp@gmail.com> wrote:
Hi,
could you help me to understand search?
Consider this simplified example: Let's say I have a contacts app with two activities: ShowContactActivity and ShowContactsListActivity.
I think that both activities should be search enabled when the user types, but other than that ShowContactsListActivity doesn't play a role anymore in the remaining post. I can set this up in the respective onCreate() method (setDefaultKeyMode ( DEFAULT KEYS
SEARCH LOCAL )).
I want ShowContactActivity to be the target of a search, so that it displays a single selected search result. I don't want to deal with the search results presentation (for a list of hits) myself. The floating search window is sufficient for that.
So in the application tag I add this:
<meta-data
android:name="android.app.default_searchable"
android:value=".ShowContactActivity" />
Which I think would enable all my activities for search and directs the results from Global Search to ShowContactActivity, right?
As part of the declaration of ShowContactActivity I add:
<intent-filter>
<action
android:name="com.mysample.VIEW" />
<category
android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.SEARCH" />
<category
android:name="android.intent.category.DEFAULT" />
</intent-filter>
As well as the reference to the metadata:
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
In the searchable I got this:
<searchable
xmlns:android="http://schemas.android.com/apk/res/android"
android:label="search label, never seen used?!l"
android:hint="search hint, never seen used?!"
android:searchSuggestAuthority="contacts"
android:searchSuggestIntentAction="com.mysample.VIEW"
android:includeInGlobalSearch="true"
android:searchSettingsDescription="The subtitle of the search provider in the global settings">
</searchable>
And also in the manifest I add this:
<provider
android:name=".SearchProvider"
android:authorities="contacts"
android:syncable="false" />
The search provider returns a cursor with this columns: _id, suggest_column_text_1, suggest_column_text_2, suggest_column_intent_data.
So far this works wonderful for the local search.
Now on to my questions.
I am wondering why my ShowContactActivity is sometimes called with the SEARCH action when invoked from global search. I think I am supposed to deal with the query, but I really don't want to. I am happy with the floating search hits box.
What happens is that I click on more results in the floating search box, then my activity is called with SEARCH (and doesn't deal with it) and when I hit BACK I get to the list of hits that I wanted to see in the first place.
Why is the name of my search provider in the settings is the label of my ShowContactActivity?
Cheers,
Mariano
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---
No comments:
Post a Comment