AndroidManifest.xml设定activity的Theme.Dialog时程序出错的解决办法

最近在学习一本郭霖老师写的《第一行代码Android 第2版》的2.4章activity的生命周期时,遇到一个问题。书中的例子给出将activity设定成对话框式的话,需要在AndroidManifest.xml里追加如下主题代码


AndroidManifest.xml设定activity的Theme.Dialog时程序出错的解决办法_第1张图片

但是运行程序时候发生了crash。


AndroidManifest.xml设定activity的Theme.Dialog时程序出错的解决办法_第2张图片


logcat里面的信息内容如下:


AndroidManifest.xml设定activity的Theme.Dialog时程序出错的解决办法_第3张图片


发生了如下错误:You need to use a Theme.AppCompat theme (or descendant) with this activity.

导致此问题的原因是我的IDE版本不兼容?还是说运行的安卓程序版本太高?具体原因我不清楚于是去Google找解决办法。

有2种解决方案;

方案1:

修改DialogActivity.class的继承;


public class DialogActivity extends AppCompatActivity 
修改为

public class DialogActivity extends Activity
并且需要
import android.app.Activity;




方案2:
修改AndroidManifest.xml里追加如下主题代码;
修改方案如下:



两种方案亲测有效,但是问题的原因我依然不知道。希望有知道的前辈们能留言告诉我一下问题的原因,多谢指导。

你可能感兴趣的:(AndroidManifest.xml设定activity的Theme.Dialog时程序出错的解决办法)