---
title: "Реакция на действия кнопок в Android SDK"
description: "Обрабатывайте действия кнопок пейвола в Android с помощью Adapty для лучшей монетизации приложения."
---

Если вы создаёте пейволы с помощью Paywall Builder, важно правильно настроить кнопки:

1. Добавьте [кнопку в Paywall Builder](paywall-buttons) и назначьте ей одно из готовых действий или создайте собственный ID действия.
2. Напишите в приложении код для обработки каждого назначенного действия.

В этом гайде показано, как обрабатывать пользовательские и готовые действия в коде.

:::warning
**Покупки, восстановление покупок, закрытие пейвола и открытие URL обрабатываются автоматически.** Все остальные действия кнопок требуют явной реализации обработки в коде приложения.
:::

## Закрытие пейволов \{#close-paywalls\}

Чтобы добавить кнопку закрытия пейвола:

1. В Paywall Builder добавьте кнопку и назначьте ей действие **Close**.
2. В коде приложения реализуйте обработчик действия `close`, который закрывает пейвол.

:::info
В Android SDK действие `close` по умолчанию закрывает пейвол. При необходимости это поведение можно переопределить в коде. Например, закрытие одного пейвола может вызывать открытие другого.
:::

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

## Открытие URL из пейволов \{#open-urls-from-paywalls\}

:::tip
Если вы хотите добавить группу ссылок (например, условия использования и восстановление покупок), добавьте элемент **Link** в Paywall Builder и обрабатывайте его так же, как кнопки с действием **Open URL**.
:::

Чтобы добавить кнопку, открывающую ссылку из пейвола (например, **Terms of use** или **Privacy policy**):

1. В Paywall Builder добавьте кнопку, назначьте ей действие **Open URL** и укажите нужный URL.
2. В коде приложения реализуйте обработчик действия `openUrl`, который открывает полученный URL в браузере.

:::info
В Android SDK действие `openUrl` по умолчанию открывает URL. При необходимости это поведение можно переопределить в коде.
:::

```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)
       }
   }
}
```

## Вход в приложение \{#log-into-the-app\}

Чтобы добавить кнопку входа пользователя в приложение:

1. В Paywall Builder добавьте кнопку и назначьте ей действие **Login**.
2. В коде приложения реализуйте обработчик действия `login`, который идентифицирует пользователя.

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

## Обработка пользовательских действий \{#handle-custom-actions\}

Чтобы добавить кнопку для обработки произвольных действий:

1. В Paywall Builder добавьте кнопку, назначьте ей действие **Custom** и задайте ID.
2. В коде приложения реализуйте обработчик для созданного вами ID действия.

Например, если у вас есть дополнительный набор предложений по подписке или разовых покупок, можно добавить кнопку, которая будет открывать другой пейвол:

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