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