【问题标题】:return from Dialog Activity to MainActivity从 Dialog Activity 返回到 MainActivity
【发布时间】:2013-07-10 17:07:50
【问题描述】:

我有这个问题我以对话框的形式启动一个 Activity,属性为 android:theme="@android:style/Theme.Dialog",到目前为止一切都很好,当我运行这个 Activity 时,我希望用户填写一些 EditTexts,然后按下一个按钮,后台进程将开始吧,现在我使用this.setFinishOnTouchOutside(false); 阻止用户点击外部并调用finish(),我的问题是我不知道如何finish() 特别是这个DialogLikeActivity,当我在后台调用finish() 时进程已启动,应用程序已关闭,我想返回 MainActivity 或启动 DialogLikeActivity 的 Activity(在为 DialogLikeActivity 调用 startActivitystartActivityForResult() 之后 MainActivity 仍然可见,这就是我得到的:

来自 MainActivity 的代码:

Intent intent = new Intent(this, DialogLikeActivity.class);
        startActivityForResult(intent,0);

以及DialogLikeActivity中的按钮代码:

public void saveClient(View view){
    Intent returnIntent = new Intent();
    setResult(RESULT_OK, returnIntent);
    finish();


}

我想也许我的问题是 MainActivity 不是 DialogLikeActivity 的父级,在那种情况下应该是?如何使 DialogLikeActivity 成为 MainActivity 的子项,如果我实现了这一点,DialogLikeActivity 中对 finish() 的调用会完成 Activity 本身而不是应用程序吗?

提前感谢我的英语。

编辑:

这是在 MainActivity 上方显示为 Dialog 的 Activity

【问题讨论】:

  • 推荐这个可能有帮助rajeshvijayakumar.blogspot.in/2013/04/…
  • @Aravinth 一个 AlertDialog 对我不起作用,我不需要“确定”“取消”对话框,因为我可以在上面加上标题,我需要 EditTexts,我需要一个自定义对话框,这就是我使用 Activity 作为对话框的原因,无论如何,谢谢。
  • 您可以使用警报对话框并在其上设置自定义视图来实现相同的目的。无论哪种方式,这都不是 Activity 的重点。您可以尝试使用 DialogFragment。
  • @JamesMcCracken 我会尝试 DialogFragment,为什么不是 Activity 的重点?我希望它是一个结果活动,那有什么问题?我不希望 MainActivity 上的这个责任我希望其他 Activity 来处理这个过程,那么我的过程中缺少什么来“填充”一个 Activity 的定义?我不明白。
  • 有很多比尝试将 Activity 变成一个 Dialog 更好的方法。

标签: android android-intent android-activity dialog activity-finish


【解决方案1】:

听起来DialogFragment 在这里可能更适合您的需求。它具有类似于Activity 的生命周期方法,并且可以在自身内部运行后台任务,但实际上由它所附加的活动管理。您可以使用多种类型。

查看关于它的 Google 文档HERE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-22
    • 2020-03-11
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    相关资源
    最近更新 更多