在活动之外显示对话

use*_*126 6 android

我试图从非活动java类启动对话.如果是这样,可以这样做吗?

ton*_*nyc 9

您可以在活动外部显示对话框,但您需要对Context对象的引用.

此类不是活动,但可以创建和显示对话框:

public class DialogExample {
  public Context mContext;

  public DialogExample(Context context) {
    mContext = context;
  }

  public void dialogExample() {
    AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    builder.setMessage("Dialog created in a separate class!");
    builder.show();
  }
Run Code Online (Sandbox Code Playgroud)

然后你可以在Activity中引用它:

public void onCreate(Bundle icicle) {
  super.onCreate(icicle);

  DialogExample otherClass = new DialogExample(this);
  otherClass.dialogExample();
}
Run Code Online (Sandbox Code Playgroud)

当您使用实用程序方法创建在应用程序中的多个活动中使用的类似对话框时,这可能很方便.