android onQuerySubmit() 方法搜索小部件给出错误
android onQuerySubmit() method search widget giving error
我对 android 没有太多经验。我正在尝试在 android 操作栏上实现搜索小部件。出现搜索栏,我可以在其中输入文本,但是当我按下提交按钮时,我收到此消息。
W/EGL_emulation: eglSurfaceAttrib not implemented
W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface
0x7fe63d9c1040, error=EGL_SUCCESS
这是我的代码的一部分
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
System.out.println("In on Query text change");
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
System.out.println("In on Query text submit");
return false;
}
});
根据代码,当我输入文本时,它会在查询文本更改时打印出来。但是当我按下提交时,它给出了上述错误。
编辑:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
System.out.println("In the menu at main menu");
getMenuInflater().inflate(R.menu.main_menu, menu);
MenuItem searchItem = menu.findItem(search);
SearchView searchView = (SearchView) searchItem.getActionView();
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
//searchView.setIconifiedByDefault(false);
searchView.setSubmitButtonEnabled(true);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
System.out.println("In on Query text change");
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
System.out.println("In on Query text submit");
return false;
}
});
return true;
}
试试这个:
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search_view_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setQueryHint("Search Products...");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchView.clearFocus();
menu.findItem(R.id.action_search).collapseActionView();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return super.onCreateOptionsMenu(menu);
我对 android 没有太多经验。我正在尝试在 android 操作栏上实现搜索小部件。出现搜索栏,我可以在其中输入文本,但是当我按下提交按钮时,我收到此消息。
W/EGL_emulation: eglSurfaceAttrib not implemented
W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7fe63d9c1040, error=EGL_SUCCESS
这是我的代码的一部分
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
System.out.println("In on Query text change");
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
System.out.println("In on Query text submit");
return false;
}
});
根据代码,当我输入文本时,它会在查询文本更改时打印出来。但是当我按下提交时,它给出了上述错误。
编辑:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
System.out.println("In the menu at main menu");
getMenuInflater().inflate(R.menu.main_menu, menu);
MenuItem searchItem = menu.findItem(search);
SearchView searchView = (SearchView) searchItem.getActionView();
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
//searchView.setIconifiedByDefault(false);
searchView.setSubmitButtonEnabled(true);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
System.out.println("In on Query text change");
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
System.out.println("In on Query text submit");
return false;
}
});
return true;
}
试试这个:
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search_view_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setQueryHint("Search Products...");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchView.clearFocus();
menu.findItem(R.id.action_search).collapseActionView();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return super.onCreateOptionsMenu(menu);