您需要在此活动中使用 Theme.AppCompat 主题(或后代)。更改 Theme.AppCompat 会导致其他错误

2023-12-01

我在我的应用程序中使用 appcompat v22.1.0 并使用工具栏。我使用时一切都很好Theme.AppCompat.Light.NoActionBar。当我开始实施时AlertDialog,它会产生这样的错误:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:113)
        at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)
        at android.support.v7.app.AppCompatDialog.<init>(AppCompatDialog.java:47)
        at android.support.v7.app.AlertDialog.<init>(AlertDialog.java:92)
        at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:882)
        at com.ramabmtr.map.findingmoo.MainActivity.onOptionsItemSelected(MainActivity.java:216)
        at android.app.Activity.onMenuItemSelected(Activity.java:2572)
        at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:353)
        at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:144)
        at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)
        at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)
        at android.support.v7.internal.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:74)
        at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:164)
        at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:740)
        at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:802)
        at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
        at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:949)
        at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:939)
        at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:598)
        at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
        at android.view.View.performClick(View.java:4084)
        at android.view.View$PerformClick.run(View.java:16989)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4812)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559)
        at dalvik.system.NativeStart.main(Native Method)

根据该错误,我将主题更改为Theme.AppCompat并把这个:

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

到我的主题。但它会产生相同的错误。

Style.xml(旧)

<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
</resources>

Style.xml(新)

<resources>
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
</resources>

有人知道如何解决吗?

MainActivity.java

package com.ramabmtr.map.findingmoo;

import android.content.DialogInterface;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private Toolbar toolbar;
private TextView toolbarTitle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/panpizza.ttf");
    toolbarTitle = (TextView) findViewById(R.id.toolbar_title);
    toolbarTitle.setTypeface(myTypeface);

    AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
    builder.setTitle(R.string.filter_title);
    builder.setMessage("test");
    builder.setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    builder.setNegativeButton(R.string.cancel_button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    AlertDialog dialog = builder.create();
    dialog.show();
}
}

使用 MainActivity.this (或 YourActivityName.this)解决了我的问题

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);

确保您已经有了 Theme.AppCompat 并扩展了 AppCompatActivity。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您需要在此活动中使用 Theme.AppCompat 主题(或后代)。更改 Theme.AppCompat 会导致其他错误 的相关文章

  • 保存用户可以访问的 Flutter Android 应用程序中的文本文件

    我在 Flutter 中开发的 Android 应用程序的用户应该能够将一些数据保存 导出 到文本文件中 用户应该能够使用其他应用程序 包括文件管理器 在其 Android 设备上找到并访问此文件 我想 final directory aw
  • 带阴影的弯曲 Android 工具栏

    我需要为工具栏或卡片视图提供弯曲的底视图 我尝试过的 bg toolbar xml
  • Espresso - 检查使用按钮按下意图打开哪个活动?

    是否可以跟踪按下某个按钮后打开了哪个 Activity 我有一个测试 其中当单击 按下按钮时 it 向服务器发送请求 直到发送请求时 它打开一个活动 验证是否执行成功在测试中 我需要检查打开的 Activity 是什么 我的测试示例 检查
  • 未找到 Gradle DSL 方法:“versionCode()”

    构建我的 Android 项目时遇到问题 我使用Grgit https github com ajoberstar grgit填写versionCode and versionName在 gradle 中 一切工作正常 直到我将 Andro
  • Mailgun POST /messages API 总是抛出 401 禁止

    我正在尝试使用改造库在 Android 中发送 Mailgun POST messages API 请求 以下是改装要求 HTTP POSThttps api key xxx v3 sandboxxxx messages https api
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用
  • 无法将 Tesseract OCR 模块添加到 Android Studio

    我按照此处找到的分步指南进行操作 https www codeproject com Articles 840623 Android Character Recognition https www codeproject com Artic
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • Android 手机应用意图

    我想在手机上启动手机应用程序作为意图 我正在使用这个代码 startActivity getPackageManager getLaunchIntentForPackage com android phone 但该函数抛出一个空指针异常 因
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • Flutter / FireStore:如何在 Flutter 中显示 Firestore 中的图像?

    我想将我在应用程序中使用的一些图像放入 Firestore 并从那里显示它们 而不是将它们作为资产捆绑在我的应用程序中 为了做到这一点 我想出了以下解决方案 对于我想要显示图像的项目 我创建了一个 Firebase 文档 其中有一个字段存储
  • 如何在 Android 清单文件中设置文本外观?

    是否可以做相当于 setTextAppearance context android R style TextAppearance Medium 在 Android 应用程序的清单文件中 android textAppearance and
  • 当参数具有默认值时,为什么无法使用导航组件将参数传递给片段?

    我正在使用导航组件 但我不明白为什么如果定义了参数 则将参数传递给下面的方法时会出现错误 我正在使用 SafeArgs 只有当我为此参数定义默认值时才会出现此错误 有人可以解释一下为什么会发生这种情况以及如何解决它吗 这是导航图的部分代码
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • 有没有办法在Android上创建一个三角形按钮?

    有没有办法创建一个三角形的按钮 我知道我可以将三角形图像作为背景 但这将使三角形之外的区域可单击 有没有办法固定按钮角 X 和 Y 以便我可以将其变成三角形 您可以覆盖OnTouch http developer android com r
  • 模拟器:进程已完成,退出代码为 134(被信号 6:SIGABRT 中断)

    我最近刚刚开始在 Mac 上下载 Android Studio 版本 3 0 1 但收到以下错误 模拟器 进程已完成 退出代码为 134 被信号 6 SIGABRT 中断 我按照 Android Studio 教程操作并能够运行模拟器 但在
  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 按名称查找视图

    是否可以通过名称而不是 id 来查找视图 findViewById R id someView 但我想做这样的事情 findViewByName someView 在处理 xml 时 您必须通过标识符查找视图 但是您可以使用以下方式查找标识
  • Android应用程序kill事件捕获

    我想在我的应用程序被终止时执行一些操作 可以使用哪种方法来实现此目的 我正在开发 Android 5 0 这个问题的关键在于 您必须了解您的申请是否可以收到任何 当您的应用程序在任何情况下被终止时的额外回调 下面的答案是由德文连线 http
  • 绘制大位图时 nSyncAndDrawFrame 速度极慢

    我想用多个大位图优化视差滚动视图 在我的 Nexus 5 上 一切都很顺利 Traceview 转储如下所示 doFrame 方法大约需要 18 毫秒才能完成 但是 当使用我的 Nexus 7 或 Android 6 模拟器 Genymot

随机推荐

  • 计算两个日期之间的年+月+日? [复制]

    这个问题在这里已经有答案了 我有两个人的出生信息 我想对他们做一些分析 比如 他们的年龄之差 秒 年 月 日 我试过这个 from datetime import date a date 1991 07 20 b date 1999 06
  • 使用 Play 2 / Scala 提供本地图像

    我正在尝试找出一种在本地上传和提供文件 图像 的模式 我弄清楚了上传部分 但对存储和服务部分有点困惑 我对如何使用 Ok sendFile 在单个页面上显示本地存储的图像感到困惑 如何将其绑定到视图上的 img src 标签中 我能想到的另
  • 以编程方式链接到特定(非函数)文档页面

    作为为我的代码编写一些文档的一部分 我想包含一个可运行的命令 该命令将向用户显示我所想到的来自 MATLAB 文档的一些特定文档页面 当所需页面属于某个功能或工具时 例如 doc cftool 或者 如果可能存在歧义 也可以指定文件夹 包名
  • 如何根据 Out- Alu 输出的值执行跳转指令

    图来自 计算机系统要素 Nand2Tetris 看看场景 j1 1 out lt 0 j2 0 out 0 j3 1 out gt 0 这种情况如何可能输出 也是如此输出 gt 0 but out 0是假的 如何out可以同时具有正值和负值
  • xcode 4.6 目标构建设置缺少“Apple LLVM 编译器 4.2 - ...”部分

    在 xcode 4 6 中 我创建了一个具有多个目标的新项目 我的目标之一是一个空的 iOS 应用程序 缺少目标构建设置中的所有 Apple LLVM 编译器 4 2 部分 还有其他人看过这个吗 关于如何让它们显示有什么想法吗 我能够通过六
  • 如何左对齐 jqmath 表中的元素

    如果我尝试创建一个表jqmath 它总是以元素为中心 所以如果我写 table a b c dddddddddddd 然后我得到 a b c dddddddddddd 如何使 jqmath 将列向左对齐 以便表格显示为 a b c dddd
  • 从 CSV 读取列数据

    我有一个 CSV 文件 Name Age Data Test 22 Yes Test2 23 No Test3 43 Yes 如何使用 PowerShell 处理此文件 以便我可以复制此功能 foreach var HeaderName i
  • 使用 Docker Compose 将 DDEV Web 容器端口公开给主机

    我已经配置了 DDEV Drupal 环境 需要在其中为我的主题运行 Pattern Lab 这个环境将由我的学生使用 他们可能不熟悉在本地计算机上安装 Node 或 Node 依赖工具 Pattern Lab 需要 Node 作为解决方法
  • 谷歌字体字体粗细为 100 不起作用

    我有一个 Android 游戏 它使用谷歌字体中的 Raleway 字体 在游戏中它看起来不错 我也想在网站上使用该字体 但字体显示不一样 我在游戏中使用Raleway Thin 这与我想在网站上使用的相同 我遇到的问题是细字体并不像游戏中
  • sqlsrv_connect:未找到数据源名称且未指定默认驱动程序

    我在将 PHP 与远程计算机上运行的 SQL SERVER 2008 连接时遇到困难 我有 php 版本 5 4 3 和 apache 2 2 22 我的计算机上已经运行了 SQL SERVER 2008 我的 wamp bin php p
  • 如何为 GlassFish 域指定 JDK?

    我已经安装了 GlassFish 2 1 1 我安装了 1 5 和 1 6 JDK 尽管我的 JAVA HOME 变量设置为 1 5 版本 并且 java version 和 javac version 都显示 1 5 但每当我启动 gla
  • openCV c++:使用 XgBoost(Adaboost 分类器)时出现问题

    我正在创建一个应用程序 用于对城市环境图像中的人类进行分类 我通过以下方式训练分类器 int main int argc char argv STEP 2 Opening the file 1 Declare a structure to
  • 课堂上的陈述作业

    class foo object def enter self print Enter def exit self type value traceback print Exit def method self print Method w
  • Wildfly 在 EAR 之间共享会话?

    我在 2 个独立的 EAR 中有 2 个 WAR 应用程序 我想将它们部署在 Wildfly 10 JBoss 7 EAP 的单个实例中 我如何在两场战争之间共享会话 身份验证 Ex EAR1 WAR1 EJB libs EAR2 WAR2
  • 如何在matlab中计算指数而不得到inf?

    标题说明了一切 我想在 matlab 中计算一个大数字的指数 但我得到了溢出 它只返回无穷大 gt gt 100 1000 ans Inf 上次我检查时 100 1000 明显小于无穷大 正如 Daniel 已经指出的那样 这个数字太大了
  • 如果不允许跨域ajax调用那么你应该如何使用谷歌电子表格API

    如果不允许跨域ajax调用那么你应该怎么做this 注意 链接已废弃 问题已更新为相关原始页面的相关部分 来自链接 开发人员指南 协议 v 2 0 Google Spreadsheets API 添加一行 要向表中添加一行 首先创建一个
  • 如何检测用户何时清除应用程序的通知

    我的应用程序有通知功能 当我收到通知时 我的应用程序图标中会显示一个徽章 据我所知 当我的应用程序处于后台时 由于用户没有单击通知中心的通知 因此我的应用程序不知道它有通知 所以它不能改变徽章号码 也来自这个主题 检测用户何时清除通知中心的
  • 执行 del 批处理文件时排除 temp 内的文件夹

    如果我想排除要删除的文件夹内的文件夹 我应该在 DEL 批处理文件中添加什么 我有这个代码来删除临时文件夹的所有内容 DEL F Q C temp 现在 我想排除一个名为导入文件夹里面 无论它是否存在于临时文件夹中 都不应被删除 我该怎么做
  • 如何在编译的 dart 中请求全屏

    我正在玩一个 Dart 应用程序 试图让全屏模式正常工作 我的 HTML 不包括样板 div Clicking this should cause it to go fullscreen div 我的飞镖代码 import dart htm
  • 您需要在此活动中使用 Theme.AppCompat 主题(或后代)。更改 Theme.AppCompat 会导致其他错误

    我在我的应用程序中使用 appcompat v22 1 0 并使用工具栏 我使用时一切都很好Theme AppCompat Light NoActionBar 当我开始实施时AlertDialog 它会产生这样的错误 java lang I