无法检查用户是否已附加图片

时间:2019-06-02 10:46:33

标签: android

我正在尝试检查用户是否已将图像附加到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();

2 个答案:

答案 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
}