我试图获取正在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();
}
}