Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 打开搜索视图时未调用onBackPressed_Android_Android Layout_Android Fragments - Fatal编程技术网

Android 打开搜索视图时未调用onBackPressed

Android 打开搜索视图时未调用onBackPressed,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我点击搜索视图并输入要搜索的数据,结果显示出来,我点击搜索结果转到细节片段,现在如果我按下后退按钮,它就不起作用了。我必须按两次后退按钮才能返回ListFragment。然而,当我按下向上按钮时,它工作正常。 这可能是什么原因 编辑1:(添加代码段) 在活动的onBackPressed()中,我弹出片段。如果您的SearchView处于open状态,则应按back按钮两次返回ListFragment 发件人: 默认情况下,searchable活动接收ACTION\u SEARCH意图 通过调用o

我点击搜索视图并输入要搜索的数据,结果显示出来,我点击搜索结果转到细节片段,现在如果我按下后退按钮,它就不起作用了。我必须按两次后退按钮才能返回ListFragment。然而,当我按下向上按钮时,它工作正常。 这可能是什么原因

编辑1:(添加代码段)


在活动的onBackPressed()中,我弹出片段。

如果您的
SearchView
处于
open
状态,则应按
back
按钮
两次
返回
ListFragment

发件人:

默认情况下,
searchable活动
接收
ACTION\u SEARCH
意图 通过调用
onCreate()
活动的新实例
带到
活动堆栈的顶部
。现在有两个例子 在
活动堆栈中的
可搜索活动
(因此按
Back按钮
返回到可搜索的
的上一个
实例
活动
,而不是退出可搜索活动


希望这将有助于~

您需要共享一些实现中的代码。是的,在ListFragment中这是绝对好的,这就是工作的方式。但同样的行为也出现在片段中,不知道为什么?
@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            menu.clear();
            inflater.inflate(R.menu.defect_search, menu);
            mIsMenuInflated = true;
            mSearchItem = menu.findItem(R.id.action_search);
            mSearchView = (SearchView) MenuItemCompat.getActionView(mSearchItem);
            mSearchView.setQueryHint(getString(R.string.search_defect_hint));
            mSearchView.setOnQueryTextListener(this);
            mSearchView.setOnQueryTextFocusChangeListener(this);

            super.onCreateOptionsMenu(menu, inflater);
    }


public void onClickDefect(Integer defectId) {
        hideKeyboard(mActivity);
        getActivity().getSupportFragmentManager()
                .beginTransaction()
                .add(R.id.frame_content, DefectTabFragment.newInstance(defectId))
                .addToBackStack(null)
                .commit();
    }