我正在尝试设置用户必须在第一次使用应用程序时登录的UI。而自定义对话框似乎是一件好事,因为我希望主UI在背景上显而易见。
所以,我做了什么 - 我创建了主Activity并使用ShowDialog()和主要活动中的onCreateDialog。
我创造了 公共类LoginDialog extends Dialog实现了View.OnClickListener 我可以控制对话中的所有内容,就像活动一样。
理想情况下,我想检查用户是否登录主要活动,如果没有 - 显示此对话框。否则就去活动吧。
在对话框中我想登录用户,如果用户点击后退而没有登录 - 我想检测它并完成主要活动。这是我遇到问题的地方。
在WinForms中,我会执行ShowDialog()(在C#中),并在对话因任何原因关闭时执行下一行。我无法弄清楚如何在Android中执行此操作。
我还没有达到目标,但是我想在点击“登录”按钮时显示进度条。此栏将位于对话框中。可行/可行吗?
提前致谢!
答案 0 :(得分:2)
您可以使用setOnDismissListener检测对话框解雇。在此方法中,您还可以调用MyActivity.this.finish()
。
要在登录过程中显示ProgressBar
,您可能需要查看this answer。它显示了AsyncTask
的基本结构,您可以对其进行调整以使用ProgressBar
代替ProgressDialog
。
您将使用onPreExecute
和onPostExecute
更改条形图在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
。