2012-08-16 56 views
21

我根據官方教程開發搜索widget界面:http://developer.android.com/guide/topics/search/search-dialog.html搜索操作欄上的小部件不觸發我的搜索活動

問題:我SearchableActivity當我輸入我的查詢,並按不被觸發OK /輸入。

艙單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 /輸入不帶我去SearchableActivity(沒有按」觸發SearchableActivity的onCreate)。

我錯過了什麼或是官方教程有瑕疵?

回答

58

問題解決了:本教程似乎缺少一個重要部分:<meta-data android:name="android.app.default_searchable" android:value=".MySearchActivityName" />必須添加到清單中的<application>標記中才能使搜索小部件正常工作。

編輯 - 同樣的提示時,動作條搜索不上數據發佈引發(任何發出任何錯誤及文件還沒有得到關於這個限制詞)解決一個問題:在searchable.xml文件的android:提示和android:標籤屬性必須是對strings.xml中字符串的引用。 Source

+0

你應該接受你自己的答案,然後 – 2012-08-16 19:12:38

+0

我目前無法解決某種限制(明天我將能夠接受它)。 – 2012-08-17 12:31:03

+3

我有類似的問題。您可以將放在主要活動中,它仍然可以工作。僅供參考。 – dbrown0708 2012-09-03 18:52:18

0

您應該在您的活動中覆蓋onOptionsItemSelected和可能的onSearchRequested

+0

更改我的答案。 – 2012-08-16 13:19:24

+1

我正在使用[Search Widget](http://developer.android.com/guide/topics/search/search-dialog.html#UsingSearchWidget)而不是[Search Dialog](http://developer.android.com/ guide/topics/search/search-dialog.html#InvokingTheSearchDialog) – 2012-08-16 13:23:46

+0

向我們展示你的'onOptionsItemSelected' – 2012-08-16 13:25:55

0

如果「xml/searchable.xml」文件的格式不正確(諸如「searchable」標籤之類的東西不是全部小寫),則在執行過程中不會返回錯誤消息,並且「SearchableActivity」不會得到調用。