嗨,我有问题,希望您能帮助我。
我正在使用android studio创建一个应用程序来读取条形码,然后在回收站视图中显示正确的项目
当我正确阅读代码时,它会显示正确的项目(半秒),但是当它错误地阅读代码时,它会卡在上面,如果我正确阅读了代码,则过一会儿(30秒)后,它会显示项
有时读取不正确后,直到重新启动应用程序为止,它永远不会显示该项目
我正在使用Firebase获取商品信息,甚至是图片的网址
这是代码的一部分
cameraPreview.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
if (ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
//Request permission
ActivityCompat.requestPermissions(SearchActivity.this,
new String[]{android.Manifest.permission.CAMERA},RequestCameraPermissionID);
return;
}
try {
cameraSource.start(cameraPreview.getHolder());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
cameraSource.stop();
}
});
//////
barcodeDetector.setProcessor(new Detector.Processor<Barcode>() {
@Override
public void release() {
}
@Override
public void receiveDetections(Detector.Detections<Barcode> detections) {
final SparseArray<Barcode> qrcodes = detections.getDetectedItems();
if(qrcodes.size() != 0)
{
txtResult.post(new Runnable() {
@Override
public void run() {
//Create vibrate
Vibrator vibrator = (Vibrator)getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);
txtResult.setText(qrcodes.valueAt(0).displayValue);
startSearchEan(txtResult.getText().toString());
}
});
Log.d("BARCODEE", "run: "+txtResult.getText());
}
}
});
private void startSearchEan(String text) {
searchAdapter = new FirebaseRecyclerAdapter<Articulo, ArticuloViewHolder>(
Articulo.class,
R.layout.articulos_item,
ArticuloViewHolder.class,
articuloList.orderByChild("Codebar").equalTo(text)
) {
@Override
protected void populateViewHolder(ArticuloViewHolder viewHolder, Articulo model, int position) {
viewHolder.articulo_name.setText(model.getName());
//Glide.with(getBaseContext()).load(model.getImage()).into(viewHolder.articulo_image);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(model.getImage(),viewHolder.articulo_image);
final Articulo local = model;
viewHolder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
Intent articuloDetail = new Intent(SearchActivity.this,ArticuloDetail.class);
articuloDetail.putExtra("ArticuloId",searchAdapter.getRef(position).getKey());
startActivity(articuloDetail);
}
});
}
};
recyclerView.setAdapter(searchAdapter);
}
预先感谢
致谢