自定义对话框 - 登录 - 后退按钮?

时间:2011-04-03 16:49:16

标签: android

我正在尝试设置用户必须在第一次使用应用程序时登录的UI。而自定义对话框似乎是一件好事,因为我希望主UI在背景上显而易见。

所以,我做了什么 - 我创建了主Activity并使用ShowDialog()和主要活动中的onCreateDialog。

我创造了 公共类LoginDialog extends Dialog实现了View.OnClickListener 我可以控制对话中的所有内容,就像活动一样。

理想情况下,我想检查用户是否登录主要活动,如果没有 - 显示此对话框。否则就去活动吧。

在对话框中我想登录用户,如果用户点击后退而没有登录 - 我想检测它并完成主要活动。这是我遇到问题的地方。

  1. 在WinForms中,我会执行ShowDialog()(在C#中),并在对话因任何原因关闭时执行下一行。我无法弄清楚如何在Android中执行此操作。

  2. 我还没有达到目标,但是我想在点击“登录”按钮时显示进度条。此栏将位于对话框中。可行/可行吗?

  3. 提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以使用setOnDismissListener检测对话框解雇。在此方法中,您还可以调用MyActivity.this.finish()

要在登录过程中显示ProgressBar,您可能需要查看this answer。它显示了AsyncTask的基本结构,您可以对其进行调整以使用ProgressBar代替ProgressDialog

您将使用onPreExecuteonPostExecute更改条形图在bar.setVisibility(View.VISIBLE)bar.setVisibility(View.INVISIBLE)中的展示率。

修改

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialog) {
        dialog.dismiss();
        if (!isLoggedIn()) {
            MyActivity.this.finish();
        }
    }
});

此代码应位于您创建对话框的MyActivity中。您需要检查用户是否已登录,因为无论是用户还是您自己的关闭对话框的代码,都会调用onDismiss