Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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 搜索后操作栏未恢复正常_Android_Android Intent_Searchview - Fatal编程技术网

Android 搜索后操作栏未恢复正常

Android 搜索后操作栏未恢复正常,android,android-intent,searchview,Android,Android Intent,Searchview,我正在使用onNewIntent()和handleIntent()在搜索的活动中使用我的搜索查询,而不是启动新活动,但搜索后,我的活动标题不会返回。取而代之的是一个带有后退按钮的图标,旁边是搜索图标,而不是它应该位于的右侧。当我按下“后退”按钮时,它会回到应该的状态。我曾尝试使用onBackPressed()来模拟此背压,但它也关闭了原始活动。我不知道为什么会发生这种情况,我的搜索活动是否因为某种原因而一直没有停止 以下是我的主要活动中的相关代码: @Override public boolea

我正在使用
onNewIntent()
handleIntent()
在搜索的活动中使用我的搜索查询,而不是启动新活动,但搜索后,我的活动标题不会返回。取而代之的是一个带有后退按钮的图标,旁边是搜索图标,而不是它应该位于的右侧。当我按下“后退”按钮时,它会回到应该的状态。我曾尝试使用
onBackPressed()
来模拟此背压,但它也关闭了原始活动。我不知道为什么会发生这种情况,我的搜索活动是否因为某种原因而一直没有停止

以下是我的主要活动中的相关代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.add, menu);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    searchView = (SearchView) menu.findItem(R.id.action_search)
            .getActionView();
    ComponentName cn = new ComponentName(this, SearchActivity.class);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(cn));
    searchView.setIconifiedByDefault(false);
    searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean queryTextFocused) {
            if(!queryTextFocused) {
                searchView.onActionViewCollapsed();
                searchView.setQuery("", false);
            }
        }
    });
    return true;
}

@Override
public void startActivity(Intent intent) {
    // check if search intent
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        onNewIntent(intent);
    } else {
        super.startActivity(intent);
    }

}

@Override
protected void onNewIntent(Intent intent) {
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    setIntent(intent);
    handleIntent(intent);
}

private void handleIntent(Intent intent) {
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        search(query);//this is my own method, performs search opeations
        searchView.onActionViewCollapsed();
    }
}

你能提供一些截图吗?我不认为截图是必要的,描述它的样子并不难,尽管也许我做得不够好。一旦我按下search,actionbar中就会出现一个小的默认应用程序图标(绿色android),左边有一个小的返回箭头。。。与任何时候都有一个活动要返回相同。它的右边是搜索图标(放大镜),没有活动标题。它的左角应该仍然有带箭头的应用程序图标,但它的右边应该有活动名称,右边应该有搜索图标。还有什么我应该描述的吗?那么你想关闭searchView吗?searchView被图标化了,问题是它似乎正在显示另一个活动,我猜是搜索活动,但该活动没有经过onCreate()方法,所以我不知道