2

我正在尝试创建一个单独的类来显示 AlertDialog。问题是,如果我创建一个扩展 Activity 的类并在 Activity 中创建一个 Dialog,我会得到黑色背景而不是透明背景。我用过:

android:theme="@android:style/Theme.Translucent.NoTitleBar"

在我的清单中,标题和背景被删除,但我没有得到与创建对话框时相同的外观。这是我的代码:

public class ConfirmDialog extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Creo el dialogo
        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setTitle(getString(R.string.AnalyzerDialogSaveTitle));
        alert.setMessage(getString(R.string.AnalyzerDialogFileName));

        // Creamos un EditView para que el usuario escriba
        final EditText input = new EditText(this);
        alert.setView(input);
        alert.show();

    }

}

我还尝试扩展 AlertDialog 和 Dialog 而不是 Activity,但是当我按下按钮时我无法使用 setResult() 来调用 onActivityResult(),而且我根本无法使用 startActivityForResult() 来调用它。

如何获得一个真正的 Dialog(不是主题,因为它看起来不像使用 AlertDialog 类时的样子)并使用 startActivityForResult 来调用它?

谢谢 :)

- - - 编辑 - - -

我也试过 Theme.Dialog 但它是一样的,因为我没有得到相同的外观。这就是我的意思:

Android 警报对话框

Android 警报对话框

Theme.Dialog 或 Theme.Traslucent.NoTitleBar

Theme.Dialog 或 Theme.Traslucent.NoTitleBar

正如你所看到的,你得到的外观是不一样的。

4

1 回答 1

0

要将活动显示为对话框,请使用 android:theme="@android:style/Theme.Dilalog" 而不是 Theme.Translucent.NoTitleBar。

于 2012-10-11T04:56:15.900 回答