第一种:
第二种:
public class QueryErrorCode {
public static void showErrorMsg(Context context,TextView textview,int rst)
{
switch (rst) {
case ErrorTable.CV_E_UNSURPPORTED:
show(context,textview,"该版本未开启此功能");
break;
case ErrorTable.CV_E_INVALIDARG:
show(context,textview,"无效参数");
break;
case ErrorTable.CV_E_HANDLE:
show(context,textview,"句柄错误");
break;
case ErrorTable.CV_E_FAIL:
show(context,textview,"内部错误");
break;
case ErrorTable.CV_E_DELNOTFOUND:
show(context,textview,"定义缺失");
break;
case ErrorTable.CV_E_INVALID_PIXEL_FORMAT:
show(context,textview,"不支持的图像格式");
break;
case ErrorTable.CV_E_FILE_NOT_FOUND:
show(context,textview,"模型文件不存在");
break;
case ErrorTable.CV_E_INVALID_FILE_FORMAT:
show(context,textview,"模型格式不正确,导致加载失败");
break;
case ErrorTable.CV_E_INVALID_APPID:
show(context,textview,"包名错误");
break;
case ErrorTable.CV_E_INVALID_AUTH:
show(context,textview,"授权验证失败");
break;
case ErrorTable.CV_E_AUTH_EXPIRE:
show(context,textview,"SDK过期");
break;
case ErrorTable.CV_E_FILE_EXPIRE:
show(context,textview,"模型文件过期");
break;
case ErrorTable.CV_E_DONGLE_EXPIRE:
show(context,textview,"加密狗过期");
break;
case ErrorTable.CV_E_ONLINE_AUTH_FAIL:
show(context,textview,"在线验证失败");
break;
case ErrorTable.CV_E_ONLINE_AUTH_TIMEOUT:
show(context,textview,"在线验证超时");
break;
default:
break;
}
}
public static void show(Context context,TextView textview,String errorMsg)
{
//Toast.makeText(context, errorMsg, Toast.LENGTH_LONG).show();
textview.setText(errorMsg);
textview.postInvalidate();
}
}
第一种是不假思索写出来的,第二种是在高人指点下写的。
对比两种发现,虽然只是把Toast单独放到一个方法里面,但看起来段落清晰,清爽多了,更重要的是在show方法里可以随意使用Toast还是textview只需注释一行代码,对比第一种则需在每个case里注释,很繁琐。代码是一种艺术,需要用心一行一行写。