我在动作栏中有一个Android搜索(只是标准的)。我开始工作的方式是,我创建了SearchQueryRouter
活动,它接收搜索查询并启动MainActivity
- 我所有Fragments
所在的地方互相替换。到目前为止,一切都很完美。但是一旦我点击了android 后退按钮,它会重定向"返回" (讽刺)空白活动或片段或任何其他内容以便记录Nothing(我在onCreate
执行时记录消息)。
了解如何正确支持后退键功能? - 我希望后退按钮能够将我推送到之前的搜索或片段上的默认结果。
这是我的MainActivity
(片段之母)
Intent intent = getIntent();
Bundle bundle = getExtras();
if (bundle != null) {
MyFragment newFrag = new MyFragment();
Bundle args = new Bundle();
args.putString("searchQuery", bundle.getString("searchQuery"));
newFrag.setArguments(args);
FragmentTransaction transaction = getFragmentManager()
.beginTransaction();
transaction.replace(R.id.container, newFrag);
transaction.addToBackStack(null);
transaction.commit();
}
以下是SearchQueryRouter
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
Intent newIntent = new Intent();
newIntent.setClass(getApplicationContext(), MainActivity.class);
newIntent.putExtra("searchQuery", query);
finish();
}