---
title: "Android SDKでボタンアクションに対応する"
description: "AdaptyのAndroidでペイウォールのボタンアクションを処理し、アプリの収益化を改善する方法。"
---

Adaptyのペイウォールビルダーを使ってペイウォールを構築する場合、ボタンを適切に設定することが重要です。

1. [ペイウォールビルダーにボタンを追加](paywall-buttons)し、既存のアクションを割り当てるか、カスタムアクションIDを作成します。
2. 割り当てた各アクションを処理するコードをアプリに記述します。

このガイドでは、コード内でカスタムアクションおよび既存アクションを処理する方法を説明します。

:::warning
**購入、復元、ペイウォールのクローズ、URLの開封のみが自動的に処理されます。** それ以外のボタンアクションはすべて、アプリコード内で適切なレスポンスの実装が必要です。
:::

## ペイウォールを閉じる \{#close-paywalls\}

ペイウォールを閉じるボタンを追加するには：

1. ペイウォールビルダーでボタンを追加し、**Close** アクションを割り当てます。
2. アプリコードで、ペイウォールを閉じる `close` アクションのハンドラーを実装します。

:::info
Android SDKでは、`close` アクションはデフォルトでペイウォールを閉じる動作をします。ただし、必要に応じてコードでこの動作を上書きすることもできます。たとえば、1つのペイウォールを閉じると別のペイウォールが開くようにする場合などです。
:::

```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** 要素を追加し、**Open URL** アクションが割り当てられたボタンと同じ方法で処理します。
:::

ペイウォールからリンクを開くボタンを追加するには（**Terms of use** や **Privacy policy** など）：

1. ペイウォールビルダーでボタンを追加し、**Open URL** アクションを割り当て、開きたいURLを入力します。
2. アプリコードで、受け取ったURLをブラウザで開く `openUrl` アクションのハンドラーを実装します。

:::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. ペイウォールビルダーでボタンを追加し、**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. ペイウォールビルダーでボタンを追加し、**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
           }
       }
   }
}
```