Android Studio 0.4.5
创建自定义对话框的Android文档:http://developer.Android.com/guide/topics/ui/dialogs.html
如果需要自定义对话框,则可以将activity显示为对话框,而不是使用对话框API。只需创建一个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">
在我的舱单上,我给activity写了一个:
<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>
创建这样的对话框是我一直在做的事情,因为我已经完成了布局。
谁能告诉我怎样才能避开这个问题?
在上面的评论中复制@markkeen的答案,因为我也有同样的问题。
我有错误声明在顶部的帖子和发生后,我添加了一个警报对话框。我在舱单中有所有相关的样式信息。通过更改alert builder中的上下文引用解决了我的问题--我更改了:
new android.support.v7.app.AlertDialog.Builder(getApplicationContext())
致:
new android.support.v7.app.AlertDialog.Builder(this)
不再有问题了。
您只需将androidmanifest.xml
文件中的android:theme=“@style/theme.appcompat.light”
添加到应用程序标记中。
出现此问题的原因是,您试图应用dialog主题的activity正在扩展ActionBarActivity
,这需要应用AppCompat
主题。
更新:扩展appcompattivity
也会有此问题
在这种情况下,将Java继承从ActionBarActivity
更改为activity
,并将对话框主题保留在清单中,不是theme.AppCompat
值
一般规则是,如果您希望您的代码支持较旧版本的Android,那么它应该具有AppCompat
主题,并且Java代码应该扩展AppCompatity
。如果你有*一个不需要这种支持的activity,比如你只关心Android的最新版本和功能,你可以对它应用任何主题但Java代码必须扩展纯旧的activity
。
注意:从AppCompattivity
(或子类ActionBaractivity
)更改为activity
时,必须将具有“支持”的各种调用更改为不具有“支持”的相应调用。因此,调用GetSupportFragmentManager
而不是GetFragmentManager
。
我正试图在删除按钮上使用警报对话框。但是显示对话框时显示异常。当我单击delete时,它崩溃并在.Show上显示exception。 我试图使用theme.AppCompat主题进行此活动,但它仍然崩溃。
XML 错误logcat
上面是主题和样式。当我运行应用程序时,显示这个错误。我想也许应该是“theme.appcompat”而不是“Android:theme”,但不确定!
我有困难运行我的Android应用程序在一个全屏模式下按视频的指示。当它试图运行时,应用程序会随着错误而崩溃。 可能有用的部分主体活动
我搜索了所有的互联网网站来修复这个错误,但是我做不到。我只想用两个按钮“是”和“否”创建AlertDialog。 这是我的代码: 这就是我的风格: 这些链接都帮不了我: > 您需要在此活动中使用theme.AppCompat主题(或后代) ActionBarCompat:java.lang.IllegalStateException:您需要使用Theme.AppCompat
这个问题已经问了很多次了,但我仍然无法解决这个问题。 我正试图在活动中显示报警窗口。它会给我以下错误消息 java.lang.IllegalStateException:您需要在此活动中使用theme.AppCompat主题(或后代 这是我的密码。