如何从搜索菜单中清除文本 android

How to clear text from search menu android

我在我的应用程序中创建了一个搜索。还有数据库和内容提供者。当我在搜索中单击该术语时,会启动一个 activity 来解释该术语。当我返回到之前的 activity 时,搜索框中仍然可以看到文本。我想被自动清除。

我一直在寻找问题的解决方案,但我没有找到。请帮忙!

SearchableDictionary.java

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.searchable_dictionary, menu);

        MenuItem item = menu.findItem(R.id.search);

        SearchView searchView = SearchView)MenuItemCompat.getActionView(item);

        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchableInfo info = searchManager.getSearchableInfo(getComponentName());
        searchView.setSearchableInfo(info); 
        searchView.setIconified(true);

我试过:searchView.clearFocus(); searchView.setQuery("", false);但它对我不起作用。

onCreateOptionsMenu 很可能不会在您返回到之前的 activity 时被调用,因为除非存在内存限制,否则 activity 不会被终止并重新启动。

我建议在用户点击结果时在回调中调用 searchView.setQuery("", false)。然后启动新的 Activity,当用户 returns 搜索字段已经被清除。