我正在构建一个需要用户身份验证的应用程序。用户首次打开应用程序时应登录或注册以继续加载某些帖子的应用程序主屏幕。
我应该提一下主屏幕应该是FragmentActivity,允许用户在2-3个选项卡之间导航..这意味着我应该有另一个Activity(用于登录屏幕或注册)以允许用户以后继续回家
MainActivity
|
|
--> Check If user logged in
| |
| |
| --> Start Login Activity (Or Register From Here)
|
--> Start Home Activity (FragmentActivity with 2-3 tabs-fragments)
现在在主Activity中我正在检查共享首选项,如果用户已登录,然后我启动FragmentActivity或登录Activity如果用户尚未登录。
我不知道这是否是一个问题,但是当这两个活动中的一个已经开始时,如果我按回它,则进入空白屏幕并且没有任何反应。似乎是逻辑,因为这是MainActivity,它实际上是空白的。我只有if语句才能进行适当的活动。
这是一个很好的方法还是我应该用另一种方式来开发它?
答案 0 :(得分:6)
您可以在导航到主页/登录屏幕ex:
后立即完成主要活动Intent intent=new Intent(this,Home.class);
startActivity(intent);
finish();
如果用户按下登录或主页空白页面上的后退按钮,则执行此操作。
此外,您可以将主要活动用作启动画面,在此处显示一些图像,并在后台决定进入登录/家庭活动。
答案 1 :(得分:1)
如果您希望将登录屏幕作为对话框,这可能会对您有所帮助。要创建登录对话框,您可以使用以下代码。
// Create Object of Dialog class
final Dialog login = new Dialog(this);
// Set GUI of login screen
login.setContentView(R.layout.login_dialog);
login.setTitle("Login to Pulse 7");
// Init button of login GUI
Button btnLogin = (Button) login.findViewById(R.id.btnLogin);
Button btnCancel = (Button) login.findViewById(R.id.btnCancel);
// Attached listener for login GUI button
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(Pulse7LoginDialogActivity.this,
"Login Sucessfull", Toast.LENGTH_LONG).show();
}
});
btnCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
login.dismiss();
}
});
// Make dialog box visible.
login.show();
答案 2 :(得分:0)
此代码可以使用......
Intent intent=new Intent(this,Home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();