java - intenciones - intent-filter
¿Cómo pasar un URI a un intento? (7)
En Intención, puedes poner directamente a Uri. No necesita convertir el Uri en cadena y convertir de nuevo a Uri.
Mira este enfoque simple.
// put uri to intent
intent.setData(imageUri);
Y para recuperar a Uri de la intención:
// Get Uri from Intent
Uri imageUri=getIntent().getData();
+1 a esta respuesta, ¡así que puede ser útil para más usuarios!
Estoy intentando pasar un URI-Object a mi Intención para usar ese URI en otra actividad ...
¿Cómo paso un URI?
private Uri imageUri;
....
Intent intent = new Intent(this, GoogleActivity.class);
intent.putExtra("imageUri", imageUri);
startActivity(intent);
this.finish();
¿Cómo uso ahora este URI en mi otra actividad?
imageUri = extras.getString("imageUri"); // I know thats wrong ...
Gracias chicos
La clase Uri
implementa Parcelable
, por lo que puede agregar y extraer directamente de la Intent
// Add a Uri instance to an Intent
intent.putExtra("imageUri", uri);
// Get a Uri from an Intent
Uri uri = intent.getParcelableExtra("imageUri");
Puede usar el mismo método para cualquier objeto que implemente Parcelable
, y puede implementar Parcelable
en sus propios objetos si es necesario.
Si desea utilizar un campo de datos extra estándar, haría algo como esto:
private Uri imageUri;
....
Intent intent = new Intent(this, GoogleActivity.class);
intent.putExtra(Intent.EXTRA_STREAM, imageUri.toString());
startActivity(intent);
this.finish();
La documentación para Intent dice:
EXTRA_STREAM added in API level 1
String EXTRA_STREAM
A content: URI holding a stream of data associated with the Intent,
used with ACTION_SEND to supply the data being sent.
Constant Value: "android.intent.extra.STREAM"
No tiene que usar los nombres estándar incorporados, pero probablemente sea una buena práctica y más reutilizable. Eche un vistazo a la documentación del desarrollador para obtener una lista de todos los campos de datos adicionales estándar incorporados.
aquí cómo lo uso; Este botón dentro de mi clase CameraActionActivity Activity donde llamo cámara
btn_frag_camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intenImatToSec = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intenImatToSec, REQUEST_CODE_VIDEO);
//intenImatToSec.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
//intenImatToSec.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 10);
//Toast.makeText(getActivity(), "Hello From Camera", Toast.LENGTH_SHORT).show();
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_CODE_IMG) {
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");
Intent intentBitMap = new Intent(getActivity(), DisplayImage.class);
// aldıgımız imagi burda yonlendirdiğimiz sınıfa iletiyoruz
ByteArrayOutputStream _bs = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 50, _bs);
intentBitMap.putExtra("byteArray", _bs.toByteArray());
startActivity(intentBitMap);
} else if (requestCode == REQUEST_CODE_VIDEO) {
Uri videoUrl = data.getData();
Intent intenToDisplayVideo = new Intent(getActivity(), DisplayVideo.class);
intenToDisplayVideo.putExtra("videoUri", videoUrl.toString());
startActivity(intenToDisplayVideo);
}
}
}
Y mi otra clase de actividad de DisplayVideo
VideoView videoView = (VideoView) findViewById(R.id.videoview_display_video_actvity);
Bundle extras = getIntent().getExtras();
Uri myUri= Uri.parse(extras.getString("videoUri"));
videoView.setVideoURI(myUri);
puedes almacenar el uri como una cadena
intent.putExtra("imageUri", imageUri.toString());
y luego simplemente convierte la cadena a uri como esta
Uri myUri = Uri.parse(extras.getString("imageUri"));
puedes hacer esto imageuri se puede convertir en una cadena como esta.
intent.putExtra ("imageUri", imageUri.toString ());
private Uri imageUri;
....
Intent intent = new Intent(this, GoogleActivity.class);
intent.putExtra("imageUri", imageUri.toString());
startActivity(intent);
this.finish();
Y luego puedes buscarlo así:
imageUri = Uri.parse(extras.getString("imageUri"));