2014-01-29 33 views
0

我將搜索小部件集成到了我的操作欄中,當我提交搜索時,會打開一個屏幕(附件),因爲我打電話給我自己的自定義搜索。當我點擊後退按鈕時,該屏幕將被刪除,並顯示我的搜索結果。搜索部件彈出式菜單

這裏是我使用的代碼

public class Main_Activity extends ActionBarActivity implements SearchView.OnQueryTextListener{ 

protected void onCreate......{ 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu){ 

    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.action_menu, menu); 

    MenuItem searchItem = menu.findItem(R.id.action_search); 
    mSearchView = (SearchView) searchItem.getActionView(); 

    setupSearchView(searchItem); 

    return true; 
} 


private void setupSearchView(MenuItem searchItem) { 

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    if (searchManager != null) { 
     List<SearchableInfo> searchables = searchManager.getSearchablesInGlobalSearch(); 

     SearchableInfo info = searchManager.getSearchableInfo(getComponentName()); 
     for (SearchableInfo inf : searchables) { 
      if (inf.getSuggestAuthority() != null 
        && inf.getSuggestAuthority().startsWith("applications")) { 
       info = inf; 
      } 
     } 
     mSearchView.setSearchableInfo(info); 
    } 

    mSearchView.setOnQueryTextListener(this); 
} 


@Override 
    public boolean onQueryTextSubmit(String query) { 

     handleTextSearchClickEvent(query); 

     return false; 
    } 

    @Override 
    public boolean onQueryTextChange(String newText) { 
     return false; 
    } 

menu.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    > 
    <!-- Location Found --> 
    <item android:id="@+id/action_location_found" 
     android:icon="@drawable/icon_plus" 
     android:title="@string/action_location_add" 

     app:showAsAction="always" 
     /> 

<!--divider--> 
    <item android:id="@+id/divider" 
     android:icon="@drawable/divider" 
     android:title="@string/action_search" 
     android:enabled="false" 
     app:showAsAction="never"/> 

    <!-- Search Item --> 
    <item android:id="@+id/action_search" 
     android:icon="@drawable/icon_search" 
     android:title="@string/action_search" 

     app:showAsAction = "always" 
     app:actionViewClass = "android.widget.SearchView" 
     /> 
</menu> 

請人發出關於不被編譯的代碼之前,我知道,我只是顯示的必需品...

我只想知道,如果有人知道如何防止顯示屏幕?!

這將不勝感激

screen shot of pop up screen

回答

0

我知道了......驚豔...很長一段時間的工作就可以了我自己和我打破自己的心臟,沒有喜悅,很短的時間後,谷歌搜索!

我有我的方法

@Override 
    public boolean onQueryTextSubmit(String query) { 

     handleTextSearchClickEvent(query); 

     return false; 
    } 

返回false,這本http://developer.android.com/reference/android/widget/SearchView.OnQueryTextListener.html

返回 true,如果查詢已被監聽處理,假讓搜索查看執行的默認操作。

魔術!