以下是我看到SHERLOCK FRAGMENT ACTIVITY
有FRAGMENTS
个SEARCH VIEW
和FRAGMENT SEARCH RESULTS
。最后有4个片段FRAGMENT SEARCH RESULTS
我的问题是如何将搜索查询的数据从搜索视图传递到FRAGMENT SEARCH RESULTS
,并在private void setupSearchView(MenuItem searchItem) {
if (isAlwaysExpanded()) {
mSearchView.setIconifiedByDefault(false);
} else {
searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
}
mSearchView.setOnQueryTextListener(this);
}
public boolean onClose() {
return false;
}
protected boolean isAlwaysExpanded() {
return false;
}
@Override
public boolean onQueryTextSubmit(String query) {
if (query.length() > 0) {
**//WHAT SHOULD I WRITE HERE**
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
我实现了这个
{{1}}
答案 0 :(得分:1)
这里有一个很好的例子action-bar-search-view。
要显示搜索结果,您需要传递submitYourQuery(query);
并在成功搜索时返回true。
存储和搜索数据的过程对您的应用程序而言是独一无二的。您可以通过多种方式存储和搜索数据。根据您的需求和数据格式,您应该仔细考虑存储和搜索数据。
从Android文档ReceivingTheQuery
获取更多详细信息答案 1 :(得分:1)
@Override
public boolean onQueryTextSubmit(String query) {
if (query.length() > 0) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment newFragment = new SearchFragment(); //your search fragment
Bundle args = new Bundle();
args.putString("query_string", query);
newFragment.setArguments(args);
transaction.replace(R.id.content_frame, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
return false;
}
答案 2 :(得分:0)
我找到了一种解决方法,您可以在BaseActivity中覆盖此方法(startActivity(Intent)),然后检查操作是否为ACTION_SEARCH,然后执行您的特殊工作
@Override
public void startActivity(Intent intent) {
try {
if (intent.getAction().equals(Intent.ACTION_SEARCH))
// Do ur job here start fragment for Example
return;
} catch (Exception e) {
}
super.startActivity(intent);
}