Estou tentando criar um app que leia o código de barra de um produto, faça uma busca no banco local, receba do Cursor o campo Descricao da db e imprima na tela usando setText.
Já consegui fazer a leitura do barcode e imprimir na tela, mas não consigo imprimir a descrição do produto.
trecho que dá erro “txtProdDescr.setText(prodDescr);”
Uma ajuda…
public class ZXingJarDemoActivity extends Activity {
// DB Class to perform DB related operations
DBController controller = new DBController(this);
// Progress Dialog Object
ProgressDialog prgDialog;
HashMap<String, String> queryValues;
private Handler handler = new Handler();
private TextView txtScanResult;
private TextView txtProdDescr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_estoque_envio);
txtScanResult = (TextView) findViewById(R.id.scan_result);
txtProdDescr = (TextView) findViewById(R.id.prodDescr);
View btnScan = findViewById(R.id.scan_button);
// Scan button
btnScan.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// set the last parameter to true to open front light if available
IntentIntegrator.initiateScan(ZXingJarDemoActivity.this, R.layout.capture,
R.id.viewfinder_view, R.id.preview_view, true);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case IntentIntegrator.REQUEST_CODE:
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode,
resultCode, data);
if (scanResult == null) {
return;
}
final String result = scanResult.getContents();
if (result != null) {
SQLiteDatabase database = controller.getWritableDatabase();
Cursor c = database.rawQuery("SELECT prodId, prodCodigo, prodDescr, prodBarra FROM produtos WHERE prodBarra = '"+result+"'", null);
if(c.moveToFirst()){
do{
//assing values
String prodId = c.getString(0);
String prodCodigo = c.getString(1);
String prodDescr = c.getString(2);
String prodBarra = c.getString(3);
//Do something Here with values
}while(c.moveToNext());
}
c.close();
database.close();
handler.post(new Runnable() {
@Override
public void run() {
txtScanResult.setText(result);
txtProdDescr.setText(prodDescr);
}
});
}
break;
default:
}
}
}