【发布时间】: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 调用 startActivity 或 startActivityForResult() 之后 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
【问题讨论】:
-
@Aravinth 一个 AlertDialog 对我不起作用,我不需要“确定”“取消”对话框,因为我可以在上面加上标题,我需要
EditTexts,我需要一个自定义对话框,这就是我使用 Activity 作为对话框的原因,无论如何,谢谢。 -
您可以使用警报对话框并在其上设置自定义视图来实现相同的目的。无论哪种方式,这都不是 Activity 的重点。您可以尝试使用 DialogFragment。
-
@JamesMcCracken 我会尝试 DialogFragment,为什么不是 Activity 的重点?我希望它是一个结果活动,那有什么问题?我不希望 MainActivity 上的这个责任我希望其他 Activity 来处理这个过程,那么我的过程中缺少什么来“填充”一个 Activity 的定义?我不明白。
-
有很多比尝试将 Activity 变成一个 Dialog 更好的方法。
标签: android android-intent android-activity dialog activity-finish