我正在使用以下代码创建警告对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
在 Android 3.0 中,警告对话框继承创建它们的活动的主题。您可以通过以下方式创建警告对话框来覆盖此操作:
AlertDialog.Builder builder = new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_DARK);
更多相关内容请点击这里。
不幸的是,这会在之前版本的Android上强制关闭。我猜使用反射是答案,但无论我读多少都无法弄清语法。有人能提供一个例子吗?
调用它的方法是:
AlertDialog.Builder builder;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { builder = HoneycombHelper.getBuilder(context); } else { builder = new AlertDialog.Builder(context); }` - wirblyHoneycombHelper
。如果您仅支持Android 2.x及更高版本,则可以引用新的API方法,只要使用Build
来防止在旧设备上执行这些语句即可。 - CommonsWareBuild
在2.x及以上版本上进行版本检查的做法让我大跌眼镜。我以前也注意到过这种行为,但一直不确定。在编译时,版本特定的代码是否会被剥离?或者DVM有什么改变,以防止加载未存在的函数? - Tony Chan