Android Zxing扫描仪和光标
问题描述:
我有Zxing android扫描仪和游标从我的数据库返回结果的一些问题。Android Zxing扫描仪和光标
我想要发生的是扫描程序将从扫描中返回结果,然后将该字符串用于数据库中的查询中,并将结果返回到将用于插入另一个表中的游标中。
我得到的错误是一个空点错误,我知道什么是空指针错误,但我正努力寻找我在代码中出错的地方。
查询
public Cursor getBarcodeInfo(String number){
return db.rawQuery("select _id, barcode_item_name, barcode_measurement, barcode_unit from barcode where barcode_number = " + number, null);
}
光标
String barcode_number = intent.getStringExtra("SCAN_RESULT");
//Code to add scanned item to DB, needs barcode data before can be ruin
final Cursor barInformation = adapter.getBarcodeInfo(barcode_number);
barInformation.moveToFirst();
String itemName = barInformation.getString(barInformation.getColumnIndex("barcode_item_name"));
Toast toast = Toast.makeText(this, "Content:" + itemName ,Toast.LENGTH_SHORT);
toast.show();
错误
02-11 20:28:07.966 18691-18691/com.example.rory.prototypev2 E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String, java.lang.String[])' on a null object reference
02-11 20:28:07.966 18691-18691/com.example.rory.prototypev2 E/AndroidRuntime: at com.example.rory.prototypev2.DBMain.getBarcodeInfo(DBMain.java:437)
02-11 20:28:07.966 18691-18691/com.example.rory.prototypev2 E/AndroidRuntime: at com.example.rory.prototypev2.scanner.onActivityResult(scanner.java:73)
答
尝试:
public Cursor getBarcodeInfo(String number){
// Safe check to make sure db and number is not null
if(db == null || number == null){
return null;
}
return db.rawQuery("select _id, barcode_item_name, barcode_measurement, barcode_unit from barcode where barcode_number = ?", new String[]{number});
}
+0
这似乎已经修复它谢谢,只是指出,查询实际上没有返回任何东西,所以这是错误来自 – JJSmith
db在哪里初始化?它的'null'当你调用'rawQuery' –
它在我的数据库类的顶部与'私人SQLITEDatabase DB是初始化;' – JJSmith
这就是宣布不进行初始化 –