片段ActionBar搜索的后退按钮

时间:2014-08-27 21:54:49

标签: android android-fragments android-actionbar back-stack android-searchmanager

我在动作栏中有一个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();
}

0 个答案:

没有答案