我有SearchView
。这是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
// Retrieve the SearchView and plug it into SearchManager
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search));
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setImeOptions(EditorInfo.IME_ACTION_NEXT);
searchView.setSubmitButtonEnabled(true);
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("SEARCH");
}
});
return true;
}
问题1:
我非常好奇我如何使用我设定的
ImeOptions
因为我找不到像setOnEditorActionListener
这样的EditText
。是 有没有办法像EditText
中那样做?
问题2:
如果问题1不可能,那么我发现了一些叫做的财产 我可以
searchView.setSubmitButtonEnabled(true);
获得此按钮 点击?有点像setOnSubmitListner
??如果不是那么在哪种意义上或如何使用提交?
任何建议都值得尊敬。
动机是在输入用户将单击提交按钮或 imeNext 以进入下一步的整个单词之后单词, KeyBoard未关闭 .. !!
答案 0 :(得分:1)
你可以这样做
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
searchMenuItem = menu.findItem(R.id.action_search);
searchView = (SearchView) searchMenuItem.getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
Log.i("TAG", "==>" + searchView.getQuery());
searchView.setMaxWidth(570);
searchView.setIconifiedByDefault(false);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//searchView.setQuery("",false);
searchView.clearFocus();
adapter.getFilter().filter(query);
searchText(query);//method for search text in that you can write your logic
return true;
}
}); }
public void searchText(String text){//Write your logic here}