我有数据库,在那里他们可以在图像中的区域之一输入。图像保存到手机中,并将URI保存到数据库中。如何检查SQL数据库游标中的列是否为空?
当用户决定不把图像中的一个项目,我有麻烦。
我试图写一个if/else语句,这里的“如果”条件检查光标的图像栏为空。我只是无法弄清楚在if条件下输入什么。
这里的代码我的工作位。基本上我想这样做,以便如果游标的COLUMN_WINE_IMAGE为null,只需做一个敬酒。如果不为空,则设置图像。
//This section turns the database's image URI stored in this cursor into a bitmap, and then sets the ImageView.
Bitmap bitmap = null;
try {
if (............){
Toast.makeText(this, "No image was taken for this item. (TOAST IS JUST TESTING PURPOSES)", Toast.LENGTH_SHORT).show();
}else{
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(cursor.getString(cursor.getColumnIndexOrThrow(WineContract.WineEntry.COLUMN_WINE_IMAGE))));
mFullImage.setImageBitmap(bitmap);
}
} catch (IOException e) {
e.printStackTrace();
}
这里是我没有成功尝试过的事情之一的例子:
if (Uri.parse(cursor.getString(cursor.getColumnIndexOrThrow(WineContract.WineEntry.COLUMN_WINE_IMAGE))).equals(null)){
//This returns error: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jeremy.sqlwine/com.example.jeremy.sqlwine.DetailsActivity}: java.lang.NullPointerException: uriString
此表现的很出色。非常感谢。我并不擅长思考这样的方法。我希望我能改善这一点。感谢您提供这样的方法。现在我有一个很好的例子来说明我应该如何思考这样的项目。 – andrdoiddev
当你仍然在学习(并且不是大家,真的)尽量不要使用复合语句这样的:'Uri.parse(cursor.getString(cursor.getColumnIndexOrThrow(WineContract.WineEntry.COLUMN_WINE_IMAGE)))'::很难看出哪里出了问题,哪里出了问题,为什么。打破一切,以便您可以检查每个值。 – Barns