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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to