

### 発生している問題

AlertDialogを出したいのですが、ビルドエラーになってしまいます。  
調べてみましたが、わからないので教えて下さい。

> val dialogBuilder = AlertDialog.Builder(this)

ここでエラーメッセージが出てます。

* * *

### エラーメッセージ

[code]

    Error:(195, 45) None of the following functions can be called with the arguments supplied:
    public constructor Builder(context: android.content.Context!) defined in android.app.AlertDialog.Builder
    public constructor Builder(context: android.content.Context!, theme: kotlin.Int) defined in android.app.AlertDialog.Builder
    
[/code]

## 該当のソースコード

[code]

    package jp.yahuu.hogehoge.app.activities
    
    import android.app.AlertDialog
    import android.content.DialogInterface
    import android.content.Intent
    import android.net.Uri
    import android.os.Bundle
    import android.provider.SearchRecentSuggestions
    import android.webkit.JavascriptInterface
    import android.widget.Toast
    import jp.yahuu.hogehoge.app.R
    import jp.yahuu.hogehoge.app.UserLogoutActivity
    import jp.yahuu.hogehoge.app.advertising.AdvertisingIdentifierManager
    import jp.yahuu.hogehoge.app.constants.Constants
    import jp.yahuu.hogehoge.app.data.feed.user.User
    import jp.yahuu.hogehoge.app.fragment.WebFragment
    import jp.yahuu.hogehoge.app.proguardHelper.NonObfuscate
    import jp.yahuu.hogehoge.app.suggestionsProvider.SuggestionsProvider
    import jp.yahuu.hogehoge.app.web.*
    import kotlin.properties.Delegates
    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            //履歴消去選んだ場合
            private fun showLogoutDialog() {
    
                // AlertDialog.Builderオブジェクト生成
    
                val dialogBuilder = AlertDialog.Builder(this)
    
                dialogBuilder.setTitle("検索履歴を削除します")
                dialogBuilder.setMessage("操作は取り消すことができません。よろしいですか？")
    
                val self = this
    
                dialogBuilder.setPositiveButton("削除", object: DialogInterface.OnClickListener {
    
                    override fun onClick(dialog: DialogInterface, which: Int) {
    
    //                    val suggestions = SearchRecentSuggestions(
    //                            self,
    //                            SuggestionsProvider.Authority,
    //                            SuggestionsProvider.Mode
    //                    )
    //
    //                    suggestions.clearHistory()
    //
    //                    Toast.makeText(self, "検索履歴を削除しました", Toast.LENGTH_SHORT).show()
    
                    }
    
                })
    
                dialogBuilder.setNegativeButton("キャンセル", object: DialogInterface.OnClickListener {
    
                    override fun onClick(dialog: DialogInterface, which: Int) {
    
                        dialog.cancel()
    
                    }
    
                })
    
                dialogBuilder.setCancelable(true)
                dialogBuilder.create().show()
    
            }
    
[/code]


CC BY-SA 4.0
2015-10-02T03:46:55.400
17168
2022-04-03T16:00:45.053
2020-12-22T05:39:42.440
3060
10715
question
java android kotlin
AlertDialogを出したいが、ビルドエラーになってしまう。


`this` ではなく、以下の形式で activity 名を付けてみてください。

**変更前:**

[code]

    AlertDialog.Builder(this)
    
[/code]

**変更後:**

[code]

    AlertDialog.Builder(yourActivitiyName.this)
    
[/code]

* * *

_この投稿は @user9156 さんのコメント の内容を元に コミュニティwiki として投稿しました。_


CC BY-SA 4.0
2020-12-22T05:36:10.807
72818
2020-12-22T05:36:10.807
3060
17168
answer