[关闭]
@natsumi 2016-03-08T03:26:29.000000Z 字数 822 阅读 2187

You need to use a Theme.AppCompat theme (or descendant) with this activity

未分类


参考:http://blog.isming.me/2015/08/31/modify-alert-style/

用了support.v7的activity就必须用AppCompat主题。
做《第一行代码》第5.5节时不小心用了v7中的AlertDialog(其实用android.app.AlertDialog就不会出这个问题了),程序收到广播后在onReceive中AlertDialog alertDialog = dialogBuilder.create();闪退,报错

You need to use a Theme.AppCompat theme (or descendant) with this activity

解决方法:
在new这个builder时设定主题

  1. AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.MyAlertDialogStyle);

R.style.MyAlertDialogStyle为自定义主题,需要在style.xml中定义

  1. <style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
  2. <!-- Used for the buttons -->
  3. <item name="colorAccent">#FFC107</item>
  4. <!-- Used for the title and text -->
  5. <item name="android:textColorPrimary">#FFFFFF</item>
  6. <!-- Used for the background -->
  7. <item name="android:background">#4CAF50</item>
  8. </style>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注