質問: このアクティビティでは、theme.appcompatテーマ(または子孫)を使用する必要があります。 android studio 0.4.5カスタムダイアログボックスを作成するためのandroidのドキュメント: http://developer.android.com/guide/topics/ui/dialogs.html カスタムダイアログが必要な場合は、dialog apiを使用する代わりに、activityをダイアログとして表示することもできます。単純にアクティビティを作成し、そのテーマを<activity>マニフェスト要素内のtheme.holo.dialogに設定します。<activity android:theme="@android:style/theme.holo.dialog" > ただし、これを試したときに、次の例外が発生します。java.lang.illegalstateexception: you need to use a theme.appcompat theme (or descendant) with this activity 私は以下のことを支持しています、そして10分以上のものを分に使うことはできません:minsdkversion 10 targetsdkversion 19 私のスタイルでは、私は以下の通りです:<!-- base application theme. --> <style name="apptheme" parent="theme.appcompat.light.darkactionbar"> そして私のマニフェストでは、私は活動のためにこれを持っています: <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:theme="@android:style/theme.holo.light.dialog" android:name="com.ssd.register.dialog_update" android:label="@string/title_activity_dialog_update" > </activity> このようにダイアログボックスを作成することは、レイアウトを完成させたので、私が望んでいたことでした。この問題を回避する方法を誰かに教えてもらえますか。
回答: kotlinを使用している場合、builderパラメーターを 'applicationcontext'から 'this'に変更するまで、問題を解決できませんでした。これは動作しませんval dialogdelete = alertdialog.builder(applicationcontext) .settitle("confirmation") .setmessage("delete this photo?") .setnegativebutton(android.r.string.no){ it, which -> it.dismiss() } dialogdelete.show() 次のコードワークスval dialogdelete = alertdialog.builder(this) .settitle("confirmation") .setmessage("delete this photo?") .setnegativebutton(android.r.string.no){ it, which -> it.dismiss() } dialogdelete.show()