Estou tentando passar um URI-Object para meu Intent para usar esse URI em outra atividade ...
Como faço para passar um URI?
private Uri imageUri;
....
Intent intent = new Intent(this, GoogleActivity.class);
intent.putExtra("imageUri", imageUri);
startActivity(intent);
this.finish();
Como faço para usar agora este URI em minha outra atividade?
imageUri = extras.getString("imageUri"); // I know thats wrong ...
Obrigado galera
java
android
android-intent
uri
Robert El
fonte
fonte
Respostas:
você pode armazenar o uri como string
e então converta a string de volta para uri assim
fonte
intent.putExtra("imageUrl", mImageUri.toString());
Em outra atividadeString imageUrl = getIntent().getStringExtra("imageUrl");
Uri mImageUri = Uri.parse(imageUrl);
A
Uri
classe implementaParcelable
, então você pode adicionar e extrair diretamente doIntent
Você pode usar o mesmo método para qualquer objeto que implemente
Parcelable
e pode implementarParcelable
em seus próprios objetos, se necessário.fonte
android.net.Uri
e nãojava.net.URI
!intent.putExtras(bundle);
, use embundle.putParcelable("imageUri", uri);
vez de usarintent.putExtra(...);
diretamente noIntent
objeto.i.putExtra("URIList", uriList.toArray());
->List<Uri> myList = i.getParcelableArrayListExtra("URIList");
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Intent.putExtra(java.lang.String, android.os.Parcelable)' on a null object reference
Em Intent, você pode colocar Uri diretamente. Você não precisa converter o Uri em string e convertê-lo novamente em Uri.
Veja esta abordagem simples.
E para obter o Uri de volta da intenção:
fonte
E então você pode buscá-lo assim:
fonte
aqui como eu uso; Este botão dentro da minha classe CameraActionActivity Activity onde chamo a câmera
E minha outra classe de atividade DisplayVideo
fonte
Se quiser usar o campo de dados extra padrão, você faria algo assim:
A documentação do Intent diz:
Você não precisa usar os nomes padrão integrados, mas é provavelmente uma boa prática e mais reutilizável. Dê uma olhada na documentação do desenvolvedor para obter uma lista de todos os campos de dados extras padrão integrados.
fonte
O
Uri.parse(extras.getString("imageUri"))
estava causando um erro:Então mudei para o seguinte:
e
Isso resolveu o problema.
fonte
você pode fazer assim. imageuri pode ser convertido em string assim.
intent.putExtra ("imageUri", imageUri.toString ());
fonte