【发布时间】: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);
}
【问题讨论】:
-
你看到这个答案了吗? stackoverflow.com/a/18932942/2308683
标签: android android-layout searchview