studio intent intenciones example developer desde boton activity abrir java android android-intent uri

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"));