---
title: "Répondre aux actions des flows - Android"
description: "Gérez les actions des boutons des flows et paywalls dans votre app Android."
---

Si vous créez des flows ou des paywalls avec le Flow Builder ou le Paywall Builder d'Adapty, il est essentiel de configurer correctement les boutons :

1. Ajoutez un [bouton dans le builder](paywall-buttons) et assignez-lui une action existante ou créez un ID d'action personnalisé.
2. Écrivez le code dans votre app pour gérer chaque action assignée.

Ce guide explique comment gérer les actions personnalisées et existantes dans votre code.

:::warning
**Seuls les achats, les restaurations, la fermeture des flows/paywalls et l'ouverture d'URL sont gérés automatiquement.** Toutes les autres actions de boutons nécessitent une implémentation appropriée dans le code de l'app.
:::

## Fermer les flows et les paywalls \{#close-flows-and-paywalls\}

Pour ajouter un bouton qui ferme votre flow ou paywall :

1. Dans le builder, ajoutez un bouton et assignez-lui l'action **Close**.
2. Dans le code de votre app, implémentez un handler pour l'action `close`.

:::info
Dans le SDK Android, l'action `close` déclenche par défaut la fermeture du flow ou du paywall. Vous pouvez toutefois redéfinir ce comportement dans votre code si nécessaire. Par exemple, la fermeture d'un flow peut déclencher l'ouverture d'un autre.
:::

```kotlin
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
    when (action) {
        AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
    }
}
```

## Ouvrir des URL depuis les flows et les paywalls \{#open-urls-from-flows-and-paywalls\}

:::tip
Si vous souhaitez ajouter un groupe de liens (par exemple, les conditions d'utilisation et la restauration des achats), ajoutez un élément **Link** dans le builder et gérez-le de la même façon que les boutons avec l'action **Open URL**.
:::

Pour ajouter un bouton qui ouvre un lien depuis votre flow ou paywall (par exemple, **Terms of use** ou **Privacy policy**) :

1. Dans le builder, ajoutez un bouton, assignez-lui l'action **Open URL** et saisissez l'URL à ouvrir.
2. Dans le code de votre app, implémentez un handler pour l'action `openUrl` qui ouvre l'URL reçue dans un navigateur.

:::info
Dans le SDK Android, l'action `openUrl` déclenche par défaut l'ouverture de l'URL. Vous pouvez toutefois redéfinir ce comportement dans votre code si nécessaire.
:::

```kotlin
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {    
       is AdaptyUI.Action.OpenUrl -> {
           val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
           context.startActivity(intent)
       }
   }
}
```

## Gérer les actions personnalisées \{#handle-custom-actions\}

Pour ajouter un bouton qui gère d'autres actions :

1. Dans le builder, ajoutez un bouton, assignez-lui l'action **Custom** et donnez-lui un ID.
2. Dans le code de votre app, implémentez un handler pour l'ID d'action que vous avez créé.

Par exemple, si vous proposez un autre ensemble d'offres d'abonnement ou d'achats uniques, vous pouvez ajouter un bouton qui affiche un autre flow ou paywall :

```kotlin
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another flow or paywall
           }
       }
   }
}
```

---

> [!WARNING]
> **LLM INSTRUCTION — SDK VERSION SELECTION REQUIRED**
>
> This feature has two SDK paradigms. Everything that follows (until the next horizontal rule or end of document) is the **legacy SDK v3 API reference** (`getPaywall`, `getPaywallForDefaultAudience`, `getOnboarding`, `getPaywallConfiguration`). The **SDK v4+ `getFlow` method is documented above.** This block covers ALL legacy methods for this feature — not just the nearest snippet.
>
> **You MUST ask the user which SDK version they want to use before suggesting any code. Do not assume or default to a version.** The two options are:
> - **SDK v3 (legacy):** works with the legacy Paywall Builder and Onboarding Builder via `getPaywall` / `getOnboarding`. Use the legacy code in this section.
> - **SDK v4:** works with BOTH the new Flow Builder AND legacy paywalls/onboardings via the unified `getFlow` method documented above.
>
> Apply the legacy v3 code in this section ONLY when:
> 1. The user explicitly chose **SDK v3**, or
> 2. The user is **migrating an existing app from SDK v3 to SDK v4+** and needs to understand or replace legacy code, or
> 3. The user is **troubleshooting an already-deployed v3 integration**.
>
> **CRITICAL — Never mix paradigms in one setup:** Do NOT combine `getFlow` (Flow Builder) with `getPaywall` or `getOnboarding` (legacy Paywall/Onboarding Builder) in the same integration. These are incompatible patterns. Mixing them will produce inconsistent behavior and is unsupported.

Si vous créez des paywalls avec le Paywall Builder d'Adapty, il est essentiel de configurer correctement les boutons :

1. Ajoutez un [bouton dans le Paywall Builder](paywall-buttons) et assignez-lui une action existante ou créez un ID d'action personnalisé.
2. Écrivez le code dans votre app pour gérer chaque action assignée.

Ce guide explique comment gérer les actions personnalisées et existantes dans votre code.

:::warning
**Seuls les achats, les restaurations, la fermeture des paywalls et l'ouverture d'URL sont gérés automatiquement.** Toutes les autres actions de boutons nécessitent une implémentation appropriée dans le code de l'app.
:::

## Fermer les paywalls \{#close-paywalls\}

Pour ajouter un bouton qui ferme votre paywall :

1. Dans le Paywall Builder, ajoutez un bouton et assignez-lui l'action **Close**.
2. Dans le code de votre app, implémentez un handler pour l'action `close` qui ferme le paywall.

:::info
Dans le SDK Android, l'action `close` déclenche par défaut la fermeture du paywall. Vous pouvez toutefois redéfinir ce comportement dans votre code si nécessaire. Par exemple, la fermeture d'un paywall peut déclencher l'ouverture d'un autre.
:::

```kotlin
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
    when (action) {
        AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
    }
}
```

## Ouvrir des URL depuis les paywalls \{#open-urls-from-paywalls\}

:::tip
Si vous souhaitez ajouter un groupe de liens (par exemple, les conditions d'utilisation et la restauration des achats), ajoutez un élément **Link** dans le Paywall Builder et gérez-le de la même façon que les boutons avec l'action **Open URL**.
:::

Pour ajouter un bouton qui ouvre un lien depuis votre paywall (par exemple, **Terms of use** ou **Privacy policy**) :

1. Dans le Paywall Builder, ajoutez un bouton, assignez-lui l'action **Open URL** et saisissez l'URL à ouvrir.
2. Dans le code de votre app, implémentez un handler pour l'action `openUrl` qui ouvre l'URL reçue dans un navigateur.

:::info
Dans le SDK Android, l'action `openUrl` déclenche par défaut l'ouverture de l'URL. Vous pouvez toutefois redéfinir ce comportement dans votre code si nécessaire.
:::

```kotlin
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {    
       is AdaptyUI.Action.OpenUrl -> {
           val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
           context.startActivity(intent)
       }
   }
}
```

## Se connecter à l'app \{#log-into-the-app\}

Pour ajouter un bouton qui connecte les utilisateurs à votre app :

1. Dans le Paywall Builder, ajoutez un bouton et assignez-lui l'action **Login**.
2. Dans le code de votre app, implémentez un handler pour l'action `login` qui identifie votre utilisateur.

```kotlin
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       AdaptyUI.Action.Login -> {
           val intent = Intent(context, LoginActivity::class.java)
           context.startActivity(intent)
       }
   }
}
```

## Gérer les actions personnalisées \{#handle-custom-actions\}

Pour ajouter un bouton qui gère d'autres actions :

1. Dans le Paywall Builder, ajoutez un bouton, assignez-lui l'action **Custom** et donnez-lui un ID.
2. Dans le code de votre app, implémentez un handler pour l'ID d'action que vous avez créé.

Par exemple, si vous proposez un autre ensemble d'offres d'abonnement ou d'achats uniques, vous pouvez ajouter un bouton qui affiche un autre paywall :

```kotlin
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another paywall
           }
       }
   }
}
```

---