如何在Android中的AlertDialog中设置主题

时间:2012-02-25 21:16:28

标签: java android eclipse

所以我一直在寻找一个半小时,但我无法理解。我不想设置自定义主题。我想为AlertDialog设置一个内置于android的主题。

根据d.android.com,我可以这样做:

public AlertDialog.Builder (Context context)

或者

public AlertDialog.Builder (Context context, int theme)

所以我这样做,它完美无缺:

AlertDialog action_btn = new AlertDialog.Builder(MyActivity.this).create();

但是,当我需要添加一个主题时,我从eclipse中得到一个错误:

AlertDialog action_btn = new AlertDialog.Builder(MyActivity.this, AlertDialog.THEME_TRADITIONAL).create();

如果有人可以帮我解决如何设置主题的话,我仍然非常擅长编程。

我还有一个红利问题:

我无法让AlertDialog()工作,为了使其工作,我需要输入AlertDialog.Builder(),但在开发人员网站上,他们似乎都有相同的方法和构造函数。有什么区别/为什么AlertDialog()不起作用?

2 个答案:

答案 0 :(得分:13)

将主题包装到上下文中,自API级别1起可用。

Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(
    this,android.R.style.Theme_DeviceDefault_Light_Dialog));

答案 1 :(得分:4)

AlertDialog.Builder的主题仅适用于Android 3.0及更高版本(API级别11)。您似乎已在项目设置中设置了较早的Android版本。

Android参考资料显示了所有构造函数和方法的API级别。您甚至可以设置过滤器,仅向您显示API级别的可用方法。

Read more about API levels here.