学习 Activity 生命周期时希望通过 Dialog 主题测试 onPause() 和 onStop() 的区别,点击按钮跳转 Activity 时报错:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activitylifecycle/com.example.activitylifecycle.DialogActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

说明所使用的 theme 和当前 Activity 不匹配
AndroidManifest.xml 中 activity 配置如下:

<activity android:name=".DialogActivity"
  android:theme="@android:style/Theme.Dialog">
</activity>

根据报错提示改为 AppCompat 主题即可:

<activity android:name=".DialogActivity"
  android:theme="@style/Theme.AppCompat.Dialog">
</activity>

查看 java 代码后发现Activity 继承 AppCompatActivity 类,在 Android Studio 中创建 Activity 时,如果勾选了 Backwards Compatibility(AppCompat) 选项,创建的Activity 会继承 AppCompatActivity 而不是 Activity,此时需要使用对应的 AppCompat 主题

posted on 2019-03-05 16:17  广坤山货  阅读(826)  评论(0编辑  收藏  举报