5

私には 2 つの活動があり、それぞれに独自の検索履歴の提案を維持してもらいたいと考えています。それは可能ですか?それぞれに独自の検索候補プロバイダーがありますが、両方のアクティビティで同じ検索履歴が表示されます。

// manifest.xml
<activity
  android:name="ActivityA"
  ...
  <meta-data 
    android:name="android.app.searchable"
    android:resource="@xml/searchable_A" />
</activity>

<activity
  android:name="ActivityB"
  ...
  <meta-data 
    android:name="android.app.searchable"
    android:resource="@xml/searchable_B" />
</activity>


// searchable_A.xml
<searchable   
  android:searchSuggestAuthority="providerA" />

// searchable_B.xml
<searchable   
  android:searchSuggestAuthority="providerB" />

検索候補を保存するときは、アクティビティごとに正しいプロバイダーを使用するようにしています。

// ActivityA.java
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(ActivityA.this,
    providerA.AUTHORITY, providerA.MODE);
suggestions.saveRecentQuery(...);

// ActivityB.java
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(ActivityB.this,
    providerB.AUTHORITY, providerB.MODE);
suggestions.saveRecentQuery(...);

検索候補プロバイダーが異なるため、それぞれが異なる履歴を維持することを期待していました。ここでの使用例は、ActivityActivity専用と食品専用があります。過去の検索用語を混ぜてほしくありません。異なる文脈では意味がありません。

http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html

4

0 に答える 0