web-dev-qa-db-ja.com

アクションバーの検索ウィジェットが検索アクティビティをトリガーしない

私は公式チュートリアルに基づいて検索ウィジェットインターフェイスを開発しています: http://developer.Android.com/guide/topics/search/search-dialog.html

問題:クエリを入力して[OK]/[Enter]を押しても、SearchableActivityがトリガーされません。

SearchableActivityのマニフェスト:

<activity Android:name="SearchableActivity" Android:launchMode="singleTop" >
        <intent-filter>
            <action Android:name="Android.intent.action.SEARCH" />
        </intent-filter>

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

xml/searchable.xml

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:hint="Search" Android:label="@string/app_name" >
</searchable>

アクションバーにアイコンを追加するメインアクティビティライフサイクルメソッド(正常に動作します):

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main, menu);

    // Get the SearchView and set the searchable configuration
    SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

    // Do not iconify the widget;expand it by default
    searchView.setIconifiedByDefault(false);

    return true;
}

SearchableActivity.Java

public class SearchableActivity extends ListActivity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("MY", "search activity triggered");
   }

}

注:検索ウィジェットがアクションバーに表示され、データを挿入できますが、OK/Enterを押してもSearchableActivityに移動しません(しません) SearchableActivityのonCreateをトリガーしません)。

私は何かが足りないのですか、それとも公式チュートリアルに欠陥がありますか?

22
Indrek Kõue

問題が解決しました:チュートリアルには重要な部分が1つ欠けているようです:検索ウィジェットを正しく機能させるには、マニフェストの<meta-data Android:name="Android.app.default_searchable" Android:value=".MySearchActivityName" />タグ内に<application>を追加する必要があります。

[〜#〜] edit [〜#〜]-データ投稿時にアクションバー検索がトリガーされない場合の問題を解決するためのヒント(エラーなし)与えられたものとドキュメントにはこの制限についての言葉がありません):searchable.xmlファイルでAndroid:hintおよびAndroid:label属性[〜#〜] must [〜#〜]strings.xml内の文字列への参照です。 ソース

59
Indrek Kõue

アクティビティでは、onOptionsItemSelectedとおそらくonSearchRequestedをオーバーライドする必要があります。

0
devmiles.com

「xml/searchable.xml」ファイルが正しくフォーマットされていない場合(「searchable」タグなどがすべて小文字ではない場合)、実行中にエラーメッセージは返されず、「SearchableActivity」は呼び出されません。

0
Naveen Saini