【发布时间】:2015-06-27 17:47:35
【问题描述】:
我有一个使用新工具栏的活动。在这个工具栏中,我只有一个图标……我的 SearchView 图标。当我单击该图标时,它会在工具栏中打开一个 EditText 并且我能够编写我要查找的内容。问题是当我点击搜索图标时,我的 Activity 的内容(带有片段的 FrameLayout)被重新加载。
编辑:
加:当点击图标时,它会重新加载活动并打开 EditText,然后调用 Activity SearchResult,如果我在该活动中按下后退按钮,我会返回 MainActivity,并且仍然打开搜索视图。
如何预防?
这是我的 Manifest 部分搜索(MainActivity 有图标):
<meta-data
android:name="android.app.default_searchable"
android:value=".activity.SearchResult_" />
<activity
android:name=".activity.MainActivity_"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".activity.SearchResult_"
android:label="@string/title_activity_search_result"
android:screenOrientation="portrait" >
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>
这就是我的 OnCreateOptionsMenu:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) MainActivity.this.getSystemService(Context.SEARCH_SERVICE);
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener()
{
public boolean onQueryTextChange(String newText)
{
Log.d("Query", newText);
return true;
}
public boolean onQueryTextSubmit(String query)
{
Log.d("Search", query);
SearchResult_.intent(MainActivity.this).extra("query", query).start();
return true;
}
};
SearchView searchView = null;
if (searchItem != null) {
searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
}
if (searchView != null) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(MainActivity.this.getComponentName()));
}
return super.onCreateOptionsMenu(menu);
}
【问题讨论】:
标签: android toolbar searchview