#android #menu #menuitem #searchview
#Android #меню #menuitem #searchview
Вопрос:
В меню есть searchview, и у меня есть кнопка. При нажатии кнопки мне нужно, чтобы searchview открывался для поиска, что означает, что фокус должен быть на searchview для ввода поисковых текстов.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_fooddoof, menu);
searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.search));
TextView searchText = (TextView)
searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
Typeface myCustomFont = Typeface.createFromAsset(getAssets(), "fonts/ProximaNovaRgRegular.ttf");
searchText.setTypeface(myCustomFont);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Intent intent = new Intent(descStore.this, listdisplay.class);
intent.putExtra("deskey", query);
startActivity(intent);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
//android.widget.Filter filter = descAdapter.getFilter();
//filter.filter(newText);
return true;
}
});
searchView.setSubmitButtonEnabled(true);
return true;
}
При нажатии кнопки:
@Override
public void onClick(View v) {
if (v == mViews.description1) {
searchview.seticonified(false);
}
}
Я пробовал опцию seticonified, но она не работает. Пожалуйста, помогите.
Ответ №1:
Вы можете запросить фокус searchview, как показано ниже
@Override
public void onClick(View v) {
switch (view.getId()) {
case R.id.your_button_id:
searchview.seticonified(false);
searchview.requestFocus(); //request focus of the view
break;
}
}