为了账号安全,请及时绑定邮箱和手机立即绑定

BasicActivity 中的 AlertDialog 不起作用 Theme.AppCompat

BasicActivity 中的 AlertDialog 不起作用 Theme.AppCompat

胡说叔叔 2022-05-12 18:22:49
我有一个 BasicActivity,我想在用户单击浮动操作按钮时显示一个 AlertDialog。当我在 FAB 上计时时:应用程序因以下错误而停止:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.我试图从(默认 BasicActivity)更改我的活动主题:android:theme="@style/AppTheme.NoActionBar"到android:theme="@style/Theme.AppCompat"但是当我打开它并出现此错误时,整个活动都会停止:This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.我看到了很多关于这个错误的问题,但我仍然不明白。我只使用了一个默认活动 (BasicActivity),我想显示一个简单的 AlertDialog。显现:<application    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:roundIcon="@mipmap/ic_launcher_round"    android:supportsRtl="true"    android:theme="@style/AppTheme">    <activity        android:name=".MainActivity"        android:label="@string/title_activity_main"        android:theme="@style/AppTheme.NoActionBar">        <intent-filter>            <action android:name="android.intent.action.MAIN" />            <category android:name="android.intent.category.LAUNCHER" />        </intent-filter>    </activity>    <activity        android:name=".ListActivity"        android:label="@string/title_activity_list"        android:launchMode="singleTop"        android:theme="@style/AppTheme.NoActionBar"        />    <activity        android:name=".AddActivity"        android:label="@string/title_activity_add"        android:theme="@style/AppTheme.NoActionBar">    </activity>    <activity        android:name=".DetailsActivity"        android:label="@string/title_activity_details"        android:parentActivityName=".ListActivity"        android:theme="@style/AppTheme.NoActionBar">        <!-- Parent activity meta-data to support 4.0 and lower -->        <meta-data            android:name="android.support.PARENT_ACTIVITY"            android:value=".MainActivity" />    </activity></application>
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

我得到了使用 [this] 关键字而不是 getApplicationContext() 的问题。当您使用 getApplicationContext() 时。它将应用应用程序的主题而不是活动。


 AlertDialog.Builder builder = new 

 AlertDialog.Builder(this);

            builder.setIcon(android.R.drawable.ic_dialog_alert);

            builder.setTitle("MyTitle");

            builder.setMessage("MyMessage);

            builder.setCancelable(false);

            builder.setPositiveButton("SAVE", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int id) {

                    if (dialog != null) {

                        dialog.dismiss();

                    }

                }

            });


查看完整回答
反对 回复 2022-05-12
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

在清单中


// 要显示的活动toolbar


    <activity android:name=".YourActivity"  

     android:theme="@style/AppTheme.NoActionBar"><!-- ADD THIS LINE -->

在样式.xml


<style name="AppTheme.NoActionBar">

    <item name="windowActionBar">false</item>

    <item name="windowNoTitle">true</item>

</style>

将此添加到清单文件中的应用程序标记


<application

    android:theme="@style/Theme.AppCompat.Light"

</application>


查看完整回答
反对 回复 2022-05-12
  • 2 回答
  • 0 关注
  • 196 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信