【问题标题】:Start app with SearchView widget open在 SearchView 小部件打开的情况下启动应用程序
【发布时间】:2016-07-18 23:52:07
【问题描述】:

您好,我需要在 searchView 中放置一些文本并聚焦/展开 searchView 小部件。

这是我尝试过的,但它不起作用。只有键盘是打开的。

是的,我在网上查看其他解决方案

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_busqueda, menu);

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(false);
    searchView.setQuery("test",true);
    searchView.setFocusable(true);
    searchView.setIconified(false);
    searchView.requestFocusFromTouch();
    SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener()
    {
        @Override
        public boolean onQueryTextChange(String newText)
        {
            // this is your adapter that will be filtered

            Log.d("dimar","on text chnge text: " + newText);


            List<Producto> lista = new Select().from(Producto.class).execute();
            List <Producto> lista2 = new ArrayList<Producto>();
            for (int i=0;i<lista.size();i++)
            {
                if (lista.get(i).getNombre().contains(newText)||lista.get(i).getLocal_id().contains(newText))
                {
                 lista2.add(lista.get(i));
                }
            }
            AdaptadorCuentas adap = new AdaptadorCuentas(MainActivity.this,lista2);
            listView.setAdapter(adap);

            return true;
        }
        @Override
        public boolean onQueryTextSubmit(String query)
        {
            // this is your adapter that will be filtered
            Log.d("dimar", "on query submit: " + query);
            return true;
        }
    };
    searchView.setOnQueryTextListener(textChangeListener);



    return super.onCreateOptionsMenu(menu);

}

【问题讨论】:

标签: android android-layout searchview


【解决方案1】:

正确的代码

MenuItem searchMenuItem = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchMenuItem.expandActionView();   searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(false);
    searchView.setFocusable(true);
    searchView.setIconified(false);
    searchView.requestFocusFromTouch();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-04
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多