我想实现,在安卓界面进行扫码的时候,用户id如果为空,就不能往下执行,并且给个友情提示,以下是我的代码和效果图
如图,用户id99,再没获取前,就不能往下执行
关键代码
public void onData(ScanDataCollection scanDataCollection) {
if ((scanDataCollection != null) && (scanDataCollection.getResult() == ScannerResults.SUCCESS)) {
ArrayList <ScanData> scanData = scanDataCollection.getScanData();
for(ScanData data : scanData) {
// updateData("<font color='gray'>" + data.getLabelType() + "</font> : " + data.getData());
// Log.i("data.getData()扫码回码的数据是",data.getData());
// Log.i("data.getLabelType()扫码回码的类型是", String.valueOf(data.getLabelType()));
//判断扫描的是什么类型的码
String s = data.getData();
Log.i("Ssssssssssssssss",s);
//截取id只要前10位置
TextView textView = (TextView) findViewById(R.id.USER_id);
if (textView.getText()==null||textView.getText().toString().equals("")){
Toast.makeText(getApplicationContext(), "用户条码为空!请重新扫码!", Toast.LENGTH_SHORT).show();
} else if(s.indexOf("U01|") != -1){//用户名条码
//判断上来是否先扫用户码
s = s.substring(4);
finalUserId=s;
USER_ids.setText(finalUserId);
}
if(s.indexOf("-") == -1&&s.indexOf("|") == -1){//任务条码CODE128,共12位数据,10位数据2位校验码
if (s==null){
}
s = s.substring(0, 10);
finalId=s;
Log.i("S的数据是",s);
}
// 更新TextView显示扫描数据
// String displayText = "<font color='gray'>" + data.getLabelType() + "</font> : " + data.getData();
// User user=new User();
// user.input.id="2";
// user.input.name=data.getLabelType() +":"+data.getData();
//**********For Jin Begin**********
// Json json = new Json();
// json.input.id="175";
// json.input.FLAG=data.getLabelType() +":"+data.getData();
// json.input.USER=data.getLabelType() +":"+data.getData();
// json.input.S0=data.getLabelType() +":"+data.getData();
// json.input.CNT1=data.getLabelType() +":"+data.getData();
// json.input.CNT2=data.getLabelType() +":"+data.getData();
// json.input.id="175";
// json.input.FLAG="12";
// json.input.USER="1";
// json.input.S0="";
// json.input.CNT1="0";
// json.input.CNT2="0";
//**********For Jin end**********
new Thread(new Runnable() {
@Override
public void run() {
// OkHttpUtils builder = OkHttpUtils
// .builder();
//// builder.url("http://192.168.10.254:18081/");
// //**********For Jin Begin**********
// builder.url("http://192.168.10.254:18081/MSG");
// //**********For Jin end**********
// builder.AddHeader("content-type", "application/json;charset=UTF-8");
//// builder.post(user);
// //**********For Jin Begin**********
// builder.post(json);
DataModel dataModel = new DataModel();
dataModel.setID(Integer.parseInt(finalId));
dataModel.setFLAG(12);
dataModel.setUSER(Integer.parseInt(finalUserId));
// dataModel.setUSER(99);
dataModel.setS0("");
dataModel.setCNT1(0);
dataModel.setCNT2(0);
Gson gson = new Gson();
String json = gson.toJson(dataModel);
MediaType mediaType = MediaType.parse("application/json");
OkHttpClient client = new OkHttpClient().newBuilder().build();
RequestBody body = RequestBody.create(mediaType, json);
// RequestBody body = RequestBody.create(mediaType,
// "{\r\n \"ID\" : 10242," +
// " \r\n \"FLAG\" : 12," +
// " \r\n \"USER\" : 99," +
// " \r\n \"S0\" : \"\"," +
// "\r\n \"CNT1\" : 0," +
// "\r\n \"CNT2\" : " +
// "\r\n}");
Request request = new Request.Builder()
.url("http://192.168.10.10:18081/MSG")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = null;
try {
response = client.newCall(request).execute();
} catch (IOException e) {
throw new RuntimeException(e);
}
String responseData = null;
try {
responseData = response.body().string();
} catch (IOException e) {
throw new RuntimeException(e);
}
Log.w("回码数据--------------------------------》",responseData);
// 使用Handler将响应数据发送到主线程
Message message = mHandler.obtainMessage();
message.what = 0;
message.obj = responseData;
mHandler.sendMessage(message);
// 使用DataModel对象构建请求体
//**********For Jin end**********
// builder.async(new OkHttpUtils.ICallBack() {
// @Override
// public void OnSuccessful(Call call, String data) {
// updateData(data);
// }
//
//
// @Override
// public Void OnFailure(Call call, String data) {
// return null;
// }
// });
}
}).start();
}
}
}