Android 自定义对话框-登录-返回按钮?

Android 自定义对话框-登录-返回按钮?,android,Android,我正在尝试设置用户界面,用户在第一次使用应用程序时必须登录。自定义对话框似乎是一个很好的选择,因为我希望主UI在后台是可见的 所以,我所做的-我创建了主活动,并使用ShowDialog()和来自主活动的onCreateDialog 我创造 公共类LoginDialog扩展对话框实现View.OnClickListener 我可以像控制活动一样控制对话框中的所有内容 理想情况下,我喜欢检查用户是否登录了主活动,如果没有,则显示此对话框。否则就跟着活动走 在对话框中,我想让用户登录,如果用户在没有登

我正在尝试设置用户界面,用户在第一次使用应用程序时必须登录。自定义对话框似乎是一个很好的选择,因为我希望主UI在后台是可见的

所以,我所做的-我创建了主活动,并使用ShowDialog()和来自主活动的onCreateDialog

我创造 公共类LoginDialog扩展对话框实现View.OnClickListener 我可以像控制活动一样控制对话框中的所有内容

理想情况下,我喜欢检查用户是否登录了主活动,如果没有,则显示此对话框。否则就跟着活动走

在对话框中,我想让用户登录,如果用户在没有登录的情况下单击返回,我想检测它并完成主要活动。这就是我的问题所在

  • 在WinForms中,我将执行ShowDialog()(在C#中),并在对话框因任何原因关闭时执行下一行。我不知道如何在安卓系统中做到这一点

  • 我还没找到它,但我想在点击登录按钮时显示进度条。此栏将位于对话框中。这可能/可行吗


  • 提前谢谢

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

    要在登录过程中显示
    ProgressBar
    ,您可能需要查看。它显示了
    AsyncTask
    的基本结构,您可以调整它以使用
    ProgressBar
    而不是
    ProgressDialog

    您可以使用
    bar.setVisibility(View.VISIBLE)
    bar.setVisibility(View.INVISIBLE)
    onPreExecute
    onPostExecute
    中更改条形图的可见性

    编辑

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

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

    @Matthew您能否向我展示如何使用(以及在何处使用)setondismissleener的示例。我找不到例子anywhere@Matthew. 是的,现在有了。我对所有这些处理程序都很慢(Java新手)。然而,IDE抱怨@Override,我认为不需要dialog.disclose()。无论如何,我完成了活动,所以子对话框将被分发,对吗?当我运行它时,这两种方式都能正常工作,我只是不确定我是否需要这两行。通常建议使用@Override来防止拼写错误。然而,我相信@Override for Interface(如上面的代码)只在Java6及以上版本中出现。@Matthew。哈,另一个问题:)显然,屏幕旋转时会调用onDismiss get。所以,一旦我在显示登录对话框时旋转屏幕,应用程序就会关闭。有没有办法妥善处理?或者至少只对对话框而不是整个应用程序防止屏幕旋转?我找到了防止方向改变的方法。谢谢