2011-05-04 85 views
4

我有一個我們正在移植到Honeycomb/Android 3.0的Android應用程序,我們在我們的新界面中使用Fragment是否可以在碎片內搜索?

我通過小工具搜索工作,如圖所示here

問題是,在使用Fragment s時,小部件不再彈出。所以問題是我如何使用Fragment s來搜索?

或者我該如何更換這條線與Fragment s?

getActivity().onSearchRequested(); 
+1

運氣好的話,這個問題? – Kid24 2011-08-31 02:21:04

+0

無。必須創建我自己的搜索機制。 – 2011-09-19 14:48:03

+0

這可能是你的問題的答案:看第三個答案] [1] [1]:http://stackoverflow.com/questions/7230893/android-search-with-fragments – MLoydd 2012-05-07 13:27:10

回答

0

你不能。 SearchManager實現與Activity s一起使用,而不是Fragment s。有關更多信息,請參閱this post

2

我使用接口/回調來解決這個問題。

在我MainActivity,我寫了一個回調接口:

private SearchRequestedCallback mSearchRequestedCallback; 
public void setSearchRequestedCallback(SearchRequestedCallback callback) { 
    mSearchRequestedCallback = callback; 
} 
public interface SearchRequestedCallback { 
    void onSearchRequested(); 
} 

在我Fragment,我設置回調在onStart()並取消其在onStop()

@Override 
public void onStart() { 
    super.onStart(); 
    getActivity().setTitle(getResources().getString(R.string.app_name)); 
    ((MainActivity)getActivity()).setSearchRequestedCallback(new SearchRequestedCallback() { 
     @Override 
     public void onSearchRequested() { 
      addFilter(); 
     } 
    }); 
} 
@Override 
public void onStop() { 
    ((MainActivity)getActivity()).setSearchRequestedCallback(null); 
    super.onStop(); 
} 
相關問題