如何在Android中的searchview中返回按钮

Raz*_*zvi 4 android searchview

我一直在互联网上搜索超过4个小时如何在searchview打开时让后退按钮正常工作,但我无法实现它.

这是我的搜索视图.

    searchview  = (SearchView) findViewById(R.id.searchView);
        searchview.setOnClickListener(this);
  @Override
    public void onClick(View v) {
        if (v.getId() == R.id.searchView){

           //Cursor cursor = manager.obtenerIDColumnaServicio(searchview.getQuery().toString());
            adapterOfDataBase.changeCursor(cursor);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是xml:

   <SearchView
                    android:layout_width="match_parent"
                    android:layout_height="63dp"
                    android:id="@+id/searchView"
                    android:iconifiedByDefault="true"
                    android:backgroundTint="#ff000000"
                    android:layout_marginRight="0dp" />
Run Code Online (Sandbox Code Playgroud)

所有这些都使用SQL和一些方法来插入,删除等表格和条目.所以我的问题是,每次我点击它的视频,它会扩展以便编写文本,每次都可以,但是当我从android按下按钮时没有任何反应.

我试过2个选项,但没有一个工作,如果你可以帮我....

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { //MEJORAR ESTO
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        searchview.onActionViewCollapsed();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
//None of this 2 methods are working. I tried them separately
@Override
public void onBackPressed(){
    if (!this.searchview.isIconified()) {
        this.searchview.setIconified(true);
    } else {
        super.onBackPressed();
    }
}
Run Code Online (Sandbox Code Playgroud)

gem*_*ini 10

当searchView打开并按下后退按钮时,您希望看到searchView关闭(也就是setIconified(true))这是一个标准行为,根据谷歌应用程序searchview实现.

所以你需要做的就是这样

    mSearchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
                mSearchView.setIconified(true);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

  • 添加一个setQuery(“”,false); 在setIconified为我工作之前。所以我的代码看起来像:if(!hasFocus){setQuery(“”,false); setIconified(true); } (2认同)