很抱歉打扰社区。但我可以在这里得到一个指针吗?我是编程和学习的新手。
我将SearchView添加到我的工具栏中,就像这样。
<item
android:id="@+id/search"
android:title="Search"
android:icon="@android:drawable/ic_menu_search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always" />
然后我试图从键盘或软键盘中捕获“ENTER”键,以便当有人在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_main, menu);
MenuItem item = menu.findItem(R.id.search);
SearchView searchView = (SearchView) item.getActionView();
searchView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_ENTER:
//do something
//do something
//do something
return true;
default:
break;
}
}
return false;
}
});
return MainActivity.super.onCreateOptionsMenu(menu);
}
但我的“//做某事”从未触发过。我可以帮忙吗?
答案 0 :(得分:0)
您可以尝试以下代码
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
//Log.e("onQueryTextChange", "==called");
return false;
}
@Override
public boolean onQueryTextSubmit(String query) {
// Do something
return false;
}
});