【问题标题】:How to use setResult() with an AlertDialog class?如何将 setResult() 与 AlertDialog 类一起使用?
【发布时间】:2012-10-11 02:54:04
【问题描述】:

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

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() 来调用它。

我怎样才能得到一个真正的对话框(没有主题,因为它看起来不像你使用 AlertDialog 类时的样子)并使用 startActivityForResult 来调用它?

谢谢你:)

-- 编辑 -----

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

Android 警报对话框

Theme.Dialog 或 Theme.Traslucent.NoTitleBar

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

【问题讨论】:

    标签: android dialog


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2021-02-13
      • 2010-12-09
      • 2017-06-19
      相关资源
      最近更新 更多