Android正在保存正在SearchView中写入的文本

Android正在保存正在SearchView中写入的文本,android,searchview,Android,Searchview,我正在尝试获取正在searchView上写入的文本,并将其保存到我稍后将使用的变量中。我知道SearchView有一个OnQueryTextListener,但我不知道在哪里使用它来捕获这些事件。这就是我目前正在尝试的 SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { @Override public boolean onQueryT

我正在尝试获取正在searchView上写入的文本,并将其保存到我稍后将使用的变量中。我知道SearchView有一个OnQueryTextListener,但我不知道在哪里使用它来捕获这些事件。这就是我目前正在尝试的

 SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            Log.d("Debug", "text is submitted");
            return false;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            Log.d("Debug", "text has changed");
            return false;
        }
    };

    searchView.setOnQueryTextListener(queryTextListener);
但是我不知道在哪里使用它,现在它在处理搜索建议的代码的这一部分中被调用:

protected void onNewIntent(Intent intent) {
    SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            Log.d("Debug", "text is submitted");
            return false;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            Log.d("Debug", "text has changed");
            name = s;
            return false;
        }
    };

    searchView.setOnQueryTextListener(queryTextListener);

    if (ContactsContract.Intents.SEARCH_SUGGESTION_CLICKED.equals(intent.getAction())) {
        //handles suggestion clicked query
        String displayName = getDisplayNameForContact(intent);
        String displayPhone = getDisplayPhoneForContact(intent);
        name = displayName;
        phone.setText(displayPhone);
        searchView.setQuery(displayName, false);
        searchView.clearFocus();

    } else if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        // handles a search query
       name = intent.getStringExtra(SearchManager.QUERY);
       //name = (String)searchView.getQuery();
       searchView.clearFocus();
    }
}

“你的用法怎么了?”路易斯·阿尔贝托里奥。请进一步澄清你的问题是什么。我们也不知道你想从你的问题中获得什么。我不知道你为什么要在onNewIntent中设置侦听器,我可能会在onCreate中这样做,但作为其他评论者,不清楚你的用例是什么,你假装实现了什么。哦,对不起,在seachView上键入的名称将保存到一个变量中,稍后显示在textView上。现在,用户必须按submit或搜索建议,以便将名称保存到变量中。但是,如果用户按下,例如到另一个文本编辑,变量将保持为空。噢,哇,只是将其移动到onCreate修复了它,谢谢@DanielOcampo