如何将setResult()与AlertDialog类一起使用?

时间:2012-10-11 02:54:04

标签: android dialog

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

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

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

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 AlertDialog

Android AlertDialog

Theme.Dialog或Theme.Traslucent.NoTitleBar

Theme.Dialog or Theme.Traslucent.NoTitleBar

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

1 个答案:

答案 0 :(得分:0)

要将活动显示为Dialog,请使用android:theme =“@ android:style / Theme.Dilalog”而不是Theme.Translucent.NoTitleBar。