2015-12-03 1 views
0

У меня есть приложение для Android Studio, которое имеет ImageView с возможностью рисования на нем, затем я нажимаю на него, и он открывает, будет ли камера или галерея, вы выбираете изображение, а затем изменения ImageView на изображение, которое пользователь выбирает.Как узнать, изменился ли ImageView?

Я использую это в операции «Создать учетную запись», и когда пользователь нажимает кнопку «Создать учетную запись», она отправляет вам предупреждение, если вы не заполнили все поля, но в ImageView, как я могу проверить, у него новая картина? Это как мой код:

btnCreateAccount.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      name = editTextName.getText().toString().trim(); 
      city = editTextCity.getText().toString().trim(); 
      email = editTextEmail.getText().toString().trim(); 
      password = editTextPassword.getText().toString().trim(); 
      birthday = editTextBirthday.getText().toString().trim(); 
      if (!email.isEmpty() && !name.isEmpty() && !password.isEmpty() && !birthday.isEmpty() && !city.isEmpty()) { 

       if (Here is supposed where i want to check if the imageView has changed) 
       { 

        Toast.makeText(CreateAccountActivity.this, "You havent choosed a image yet", 
          Toast.LENGTH_LONG).show(); 
       } 

       Toast.makeText(CreateAccountActivity.this, "You filled up all the fields", 
         Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(CreateAccountActivity.this, "there are some fields unfilled", 
         Toast.LENGTH_LONG).show(); 

      } 

     } 
    }); 

ответ

3

Я не думаю, что вы на самом деле хотите. Вместо этого вы хотите проверить, выбрал ли пользователь новое изображение. Булевое значение pictureSelected в вашей деятельности. При запуске установите для него значение false. Когда вы изменяете drawable в imageView, установите для него значение true. Затем просто проверьте pictureSelected в инструкции if.

1

Прежде чем пользователь выбирает картинку, сохранить текущую drawable в ImageView и в onClick сравнить старую с текущим

перед выбором изображения:

Drawable oldDrawable = imageView.getDrawable(); 

в методе onClick:

if (imageView.getDrawable() == oldDrawable) 
     { 

      Toast.makeText(CreateAccountActivity.this, "You havent choosed a image yet", 
         Toast.LENGTH_LONG).show(); 
     } 

Вы также можете использовать imageView.getDrawable() == null, чтобы проверить, imageView не имеет прикрепленного изображения заранее