相关疑难解决方法(0)

如何在MainActivity中解除/关闭/解除ActionBar中的SearchView?

我在输入值后尝试清除并关闭SearchView.我找到了一个解决方案,但它会关闭搜索,如果我再次尝试搜索,则不会执行任何操作.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main_actions, menu);

    searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setOnQueryTextListener(searchListener);

    return super.onCreateOptionsMenu(menu);
}

SearchView.OnQueryTextListener searchListener = new SearchView.OnQueryTextListener(){
    @Override
    public boolean onQueryTextChange(String arg0) {
        return false;
    }
    @Override
    public boolean onQueryTextSubmit(String query) {
        new JsoupGetData("http://api.openweathermap.org/data/2.5/find?q="+ query + "&lang=pl").execute();
        try {
            searchView.onActionViewCollapsed();
        }
        catch(Exception ex){
            ex.printStackTrace();
            System.out.println(ex);
        }
        return true;
    }
};
Run Code Online (Sandbox Code Playgroud)

我只能第一次搜索.每次下次它只关闭我的输入键盘而什么都不做.如何以正确的方式执行?

编辑.建议的更改如下所示:

        try {
            searchView.setIconified(true);
        }
Run Code Online (Sandbox Code Playgroud)

activity_main_actions.xml:

   <!-- Search Widget -->
   <item android:id="@+id/action_search"
       android:icon="@drawable/ic_action_search"
       android:title="@string/action_search"
       android:showAsAction="always"
       android:actionViewClass="android.widget.SearchView"/>
Run Code Online (Sandbox Code Playgroud)

EDIT2:

showAsAction="always|collapseActionView"当我点击搜索时,我改变但它关闭了我的应用程序.

我还将监听器放在OnCreateOptionsMenu中以查看它是否会改变任何内容:

@Override
public boolean onCreateOptionsMenu(Menu …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar searchview

22
推荐指数
3
解决办法
3万
查看次数

标签 统计

android ×1

android-actionbar ×1

searchview ×1