如何判断android活动当前是否显示为对话框?

时间:2014-06-16 18:13:16

标签: android android-activity

我在库项目中有一个活动,可能会也可能不会显示为对话框。如果是,我想设置它的高度和宽度。有没有办法在onCreate中确定当前主题是对话框?

2 个答案:

答案 0 :(得分:1)

您可以使用反射 - 只需从onCreate()调用此方法。

public boolean isDialog() {
    boolean isDialog;
    try {
        Method method = ContextThemeWrapper.class.getMethod("getThemeResId");
        method.setAccessible(true);
        int themeResId = (Integer) method.invoke(this);
        // TODO: replace Theme_Dialog with the Theme you're using
        isDialog = themeResId == android.R.style.Theme_Dialog; 
    } catch (Exception e) {
        // Error getting theme resource ID
        isDialog = false;
    }       
    return isDialog;
}

答案 1 :(得分:0)

我最终决定开展两项活动,一项名为WizardActivity,另一项名为WizardDialog。我在库中有样本如何在清单中设置这些样本,并且由开发人员使用我的库来确保主题是正确的。