我正在使用android studio开发图库应用程序以其名称存储在数据库中。但是当我尝试将空图像添加到数据库时,停止运行。当空数据来自用户时,应打印一个Toast消息,如请选择图像或插入名称。我尝试了保存按钮的onClick
方法,但没有工作。这是我试过的:
public void save (View view) {
String artName = editText.getText().toString();
//sikistirma islemi
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
selectedImage.compress(Bitmap.CompressFormat.PNG,50,outputStream);
byte[] byteArray = outputStream.toByteArray();
try {
if(artName!=null && outputStream!=null)
{
database = this.openOrCreateDatabase("Arts", MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS arts (name VARCHAR, image BLOB)"); //BLOB is dataType for images
String sqlString = "INSERT INTO arts (name, image) VALUES (?, ?)";
SQLiteStatement statement = database.compileStatement(sqlString);
statement.bindString(1, artName);
statement.bindBlob(2, byteArray);
statement.execute();
}
else
{
Toast.makeText(getApplicationContext(), "PPlease select an image or insert the name", Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
e.printStackTrace();
}
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
假设selectedImage是一个位图对象,在您的代码中,可以在将其插入数据库之前检查它是否为null
public void save (View view) {
String artName = editText.getText().toString();
if(selectedImage!=null)
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
selectedImage.compress(Bitmap.CompressFormat.PNG,50,outputStream);
byte[] byteArray = outputStream.toByteArray();
try {
if(artName!=null )
{
database = this.openOrCreateDatabase("Arts", MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS arts (name VARCHAR, image BLOB)"); //BLOB is dataType for images
String sqlString = "INSERT INTO arts (name, image) VALUES (?, ?)";
SQLiteStatement statement = database.compileStatement(sqlString);
statement.bindString(1, artName);
statement.bindBlob(2, byteArray);
statement.execute();
}
else
{
Toast.makeText(getApplicationContext(), "Please insert the name", Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
e.printStackTrace();
}
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
else
{
// If the bitmap object is null display user toast to select the image
Toast.makeText(getApplicationContext(), "Please select some image", Toast.LENGTH_LONG).show();
}
}