每个屏幕的操作栏中都有一个搜索图标。 它确实会找到数据库中存在的项目,但是对于不存在的项目,它不会显示错误消息
找到了。相反,它会停止运行。我是否需要在清单文件中添加任何内容? php文件返回echo“ 0”;如果没有找到结果。
searchable.xml
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" />
每个类“实现SearchView.OnQueryTextListener {”并在上面添加此代码。
...
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 searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(this);
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
String name=query;
new Server(getBaseContext(),2,name.execute();
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
...
以及服务器类中的特定部分
protected String communicate(String argument1 ){
.....
case 2:
link="...php";
this.query=name;
break;
.......
}
protected void exec(String list){
...
case 2:
if (!found.equals("0")) {
String[] list = found.split(",");
String check="";
for (int i=0;i<list.length;i++) {
if (query.equals(list[i].toLowerCase())) check=list[i];
}
String name=check;
new Server(context,3,name).execute();
}
else Toast.makeText(context, "Not found", Toast.LENGTH_LONG).show();
break;
...
}
答案 0 :(得分:0)
可以尝试添加try/catch
结构吗?
case 2:
try {
if (!found.equals("0")) {
String[] list = found.split(",");
String check="";
for (int i=0;i<list.length;i++) {
if (query.equals(list[i].toLowerCase())) check=list[i];
}
String name=check;
new Server(context,3,name).execute();
}
} catch (Exception e) {
Toast.makeText(context, "Not found", Toast.LENGTH_LONG).show();
}