【问题标题】:Is it possible to search within Fragments?是否可以在片段中搜索?
【发布时间】:2011-05-04 16:36:20
【问题描述】:

我有一个 Android 应用程序,我们正在移植到 Honeycomb/Android 3.0,我们在新界面中使用 Fragments。

我通过小部件进行搜索,如 here 所示。

问题是,使用Fragments 时,小部件不再弹出。所以问题是如何让搜索与Fragments 一起使用?

或者我怎样才能将这一行替换为Fragments?

getActivity().onSearchRequested();

【问题讨论】:

标签: android android-fragments searchview


【解决方案1】:

我使用接口/回调解决了这个问题。

在我的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();
}

【讨论】:

    【解决方案2】:

    你不能。 SearchManager 被实现为与Activitys 一起使用,而不是Fragments。请参阅this post 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 2011-01-24
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      相关资源
      最近更新 更多