es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo pasar argumentos seguros como paquete en un enlace profundo explícito de Android?

Estoy creando un enlace profundo explícito en el componente de navegación utilizando safe args.

PendingIntent pendingIntent = new NavDeepLinkBuilder(getApplicationContext())
                .setGraph(R.navigation.mobile_navigation)
                .setDestination(R.id.nav_order_details)
                .setArguments(//TODO pasar Bundle)
                .setComponentName(MainActivity.class)
                .createPendingIntent();

El problema es que necesito pasar un Bundle en los argumentos, pero no sé cómo convertir los Safe args a Bundle en Java.

Encontré este formato en Kotlin

OrderDetailsFragmentArgs(id).toBundle()

Necesito convertirlo a código en Java. Por favor, ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para convertir el Safe Args OrderDetailsFragmentArgs(id).toBundle() en código Java, puedes usar el siguiente formato:

    Bundle bundle = new OrderDetailsFragmentArgs.Builder(id).build().toBundle();
    

    Esto creará un nuevo bundle con el argumento id pasado como parámetro del constructor utilizando la clase Builder proporcionada por Safe Args. Luego, puedes pasar este bundle al método setArguments() en NavDeepLinkBuilder de la siguiente manera:

    PendingIntent pendingIntent = new NavDeepLinkBuilder(getApplicationContext())
                    .setGraph(R.navigation.mobile_navigation)
                    .setDestination(R.id.nav_order_details)
                    .setArguments(bundle)
                    .setComponentName(MainActivity.class)
                    .createPendingIntent();
    

    De esta manera, puedes crear un enlace profundo explícito en el componente de navegación utilizando Safe Args al pasar el bundle adecuado.

Comments are closed.