java - 重置搜索小部件 (SearchView) 值

标签 java android kotlin android-widget

我有 2 个 Activity :第一个,HomepageActiviy,有一个搜索小部件,它使用另一个 Activity SearchActivity 搜索数据。

我想要做的是,当我从 SearchActiviy 返回到 HomepageActivity 时,搜索小部件会折叠并显示一个空文本。

我已尝试执行以下操作:

public class HomepageActivity extends Activity {
    @TargetApi(11)
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.projectslist, menu);

        if(Build.VERSION.SDK_INT >= 11) {
            SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
            SearchView searchView = (SearchView) menu.findItem(R.id.homepage_search).getActionView();
            ComponentName component = new ComponentName(this, SearchActivity.class);
            searchView.setSearchableInfo(searchManager.getSearchableInfo(component));
            searchView.setIconifiedByDefault(true);
            searchView.setQuery("", false);

        }

        return super.onCreateOptionsMenu(menu);
    }

    […]

    @TargetApi(11)
    @Override
    protected void onRestart() {
        super.onRestart();
        if(Build.VERSION.SDK_INT >= 11)
            invalidateOptionsMenu();
        launchAsynchronousImageDownload();
    }
}

如果小部件很好地显示为折叠状态,小部件中的文本仍会记住搜索过的文本(在我重新打开小部件后)。 如何重置小部件的文本?

感谢您的帮助! ;)

最佳答案

您还可以尝试以下方法:

searchView.setQuery("", false);
searchView.clearFocus();

关于java - 重置搜索小部件 (SearchView) 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142678/

相关文章:

java - Android Grid View 在 Android 版 kitkat 上崩溃

java - Room + RxJava 2 如何检查表中某列等于特定值的记录

java - 在Java中如何用字符串替换任意字符?

java - 配置三叶草排除文件模式

c# - 在 RESTful 服务的 XML 中表示列表的最佳方式是什么,以便更容易反序列化

android - Volley 错误 : Repeating a request when verbose logging is enabled fails

android - viewModelScope 未取消

java - JTextPane 追加 HTML 字符串

android - sqlite3_step失败: NOT NULL constraint failed

android - 无法在 Android 内部存储中写入文件