Два может быть onActivityResult в том же классе Android?

Я должен пересылать два изображения (они не должны быть пересланными в то же время) в два ImageView , каждая выбранная по отдельности галереи. Я добился того, чтобы появилась одна из них, но он удваивает мне данные в двух ImageView по вине onActivityResult и я осведомлялся, поскольку он мог бы разделять код, для того, чтобы, или появились два onActivityResult или в том же самом, или называть это с другой стороны для того, чтобы он позвонил в два различных метода.

Код, который у меня есть, - следующий: private void openGallery(){ Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI); startActivityForResult(gallery, PICK_IMAGE); }
protected void onActivityResult(int RequestCode, int ResultCode, Intent data) { //super.onActivityResult(RequestCode, ResultCode, data); if(ResultCode==RESULT_OK && RequestCode==PICK_IMAGE){ imaginiUri=data.getData(); imagenInicio.setImageURI(imaginiUri); imagfinUri=data.getData(); imagenFin.setImageURI(imagfinUri); } }

Где imagenFin он ImageView

2
задан 28.07.2017, 15:56
2 ответа

Использует requestCode различный según ImageView, что ты хочешь обновить

private void openGallery(int requestCode){
    Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        startActivityForResult(gallery, requestCode);
}

И потом в onActivityResult()

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode==RESULT_OK){
        if (requestCode==PICK_IMAGE_INI){
            imaginiUri=data.getData();
            imagenInicio.setImageURI(imaginiUri);
            return;
        }else if (requestCode==PICK_IMAGE_FIN){
            imagfinUri=data.getData();
            imagenFin.setImageURI(imagfinUri);
            return;
        }
    } 

    super.onActivityResult(RequestCode, ResultCode, data);
}

Не. У тебя не могут быть два onActivityResult(), так как его один método полученный в наследство от Activity. Когда второстепенный activity заканчивается, система называет Activity.onActivityResult, и в свою очередь в метод, помеченный с @Override в твоем осуществлении, в случае, если он будет существовать.

2
ответ дан 24.11.2019, 07:11

два Может быть onActivityResult в том же классе Android?

НЕ!

Â: Если sobreescribes método в нескольких случаях в который tendr¦ - на который соглашаться?,

Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
...
...
...
}

того, что осуществляется, состоит в том, чтобы requestCode и resultCode имели различно, Пойдите, чтобы мочь идентифицировать действия.

Относительно:

"я добился того, чтобы появилась одна из них, но он удваивает мне данные в двух ImageView по вине onActivityResult"

В действительности ты получаешь ту же информацию для imaginiUri и imagfinUri

    imaginiUri=data.getData();
    imagenInicio.setImageURI(imaginiUri);
    imagfinUri=data.getData();
    imagenFin.setImageURI(imagfinUri);
2
ответ дан 24.11.2019, 07:11