我正在尝试检查用户是否已将图像附加到imageview。似乎它没有返回null,我不能输入错误消息。
imageview.getDrawable() == null
总是返回“ true”(我认为) 因为当我不放置图像时,它仍在插入数据 它并没有显示您忘记填写某些字段
我所拥有的:
boolean hasImage = (imageView.getDrawable() == null);
if (!editTitle.getText().toString().equals("") && !editDescription.getText().toString().equals("") && !hasImage) {
boolean isInserted = myDb.insertData(editTitle.getText().toString(), editDescription.getText().toString(), path, longitude, latitude, date);
}
if (editTitle.getText().toString().equals("") || editDescription.getText().toString().equals("") || hasImage) {
Toast.makeText(AddMomentActivity.this, "You forgot to fill in some fields", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(AddMomentActivity.this, "Your Moment has been added!", Toast.LENGTH_LONG).show();
答案 0 :(得分:1)
尝试以下代码。
int PICK_IMAGE=1;
ImageView imageView;
boolean hasImage=false;
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode==Activity.RESULT_OK&&data!null){
if(requestCode==PICK_IMAGE&&data.getData()!=null){
Uri uri=data.getData();
imageView.setImageUri(uri);
hasImage=true; //add this line.
}
}
}
默认情况下,hasImage的值为“ false”。如果已成功拾取图像并将其附加到imageview,则将hasImage的值更新为“ true”。这意味着imageview具有某些值。
添加此支票。
if (editTitle.getText().toString().trim().isEmpty()
||editDescription.getText().toString().trim().isEmpty()||
hasImage==false) {
//display toast that some fields are not filled
}else //do something
答案 1 :(得分:0)
尝试从ImageView中将图像作为位图获取
Bitmap image=((BitmapDrawable)imageView.getDrawable()).getBitmap();
if(image == null){
//logic
}