单击搜索按钮时获取 searchView 文本

Get searchView text when search button is clicked

我是 android 编程新手。

我对搜索视图有疑问。 当我使用 textlistener 时,它总是在输入时检查文本,直到用户实际点击搜索栏中的搜索!

SearchView searchView = (SearchView) findViewById(R.id.Search_View);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                ///Toast.makeText(getApplicationContext(),query,Toast.LENGTH_SHORT).show();
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                Toast.makeText(getApplicationContext(),newText,Toast.LENGTH_SHORT).show();
                return false;
            }
        });

所以当我在搜索框中输入时,消息会在我输入时一个字母一个字母地烘烤,而不是让我点击键盘上的搜索。

我搜索了很多,找不到解决方案。 感谢您的解决方案...:)

SearchView 应该在用户输入时提供建议。如果您需要搜索整个句子或单词,请考虑使用带按钮的 EditText 而不是 SearchView。将侦听器设置为按钮并在用户点击后开始操作(Toast 消息)。

如果您不希望搜索视图执行默认操作,请尝试设置方法 onQueryTextChange(String newText) empty body 和 return true。仅在 onQueryTextSubmit(String query).

中自行处理输入文本

如果你想在按下 key board 按钮时获取文本,那么你可以使用:

@Override
public boolean onQueryTextSubmit(String query) {
    Toast.makeText(getApplicationContext(), query, Toast.LENGTH_SHORT).show();
    return false;
}

query 是您要使用的文本。

如果您想通过点击其他按钮(例如 ButtonTextView 等)获取文本。

然后你使用像:

buttonname.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View view) {
       String query = searchView.getQuery();
   }
});