Android Studio如何一次创建注册屏幕

时间:2019-03-06 19:17:37

标签: java android

我正在创建一个需要用户创建4位数字密码的应用程序,以后该密码将用于登录该应用程序。我将如何设置,以便在未创建密码的情况下进入登录页面,而在未创建密码的情况下进入登录页面。启动活动需要是注册页面,登录页面还是其他页面?谢谢

5 个答案:

答案 0 :(得分:2)

您可以为此使用SharedPreferences

当您注册用户时,将一个值存储在SharedPreferences中,然后每次打开该应用程序时都要求输入该值,如果为true,则转到LoginPage,如果不是,则转到RegisterPage

当用户注册到应用程序时:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putBoolean("userRegistered", true);
 editor.apply();

然后,每次启动应用程序时,请执行以下操作:

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
Boolean isUserRegistered = prefs.getString("userRegistered", false); //False is a default value
if (isUserRegistered) {
  startActivity(new Intent(this,Login.class));
}
else{
  startActivity(new Intent(this,Register.class));
} 

//Shorter way
startActivity(isUserRegistered ? new Intent(this,Login.class) : new Intent(this,Register.class));

您可以在SplashActivity中进行操作,因此可以执行类似此人Splash Activity example的操作

答案 1 :(得分:0)

启动活动可能是某种“飞溅”活动。在获取所有准备工作并决定下一步操作时,只需显示应用程序徽标即可。

答案 2 :(得分:0)

一种可能的方法是使用Shared Preference保存用户是否拥有密码的信息。 活动开始时,只需检查该信息并确定要加载哪个页面

答案 3 :(得分:0)

以EditTexts作为LoginId和密码开头。密码可以保存在SharedPreferences中。 在其下方包括一个Textview,询问“首次用户?”通过OnClick重定向到新的片段或活动进行注册。

如果您希望用户避免在每次启动应用程序时输入登录凭据,请参阅此文章。

https://medium.com/@prakharsrivastava_219/keep-the-user-logged-in-android-app-5fb6ce29ed65

答案 4 :(得分:0)

我建议您使用片段:

只需在您的StartActivity中包含一个片段容器,就像这样:

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>

创建两个单独的片段,用于注册和注册后的用户交互。然后添加一个字段,该字段将通知您是否已注册用户:

SharedPreferences spref = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
Boolean isRegistered = spref.getString("userRegistered", false);

现在,根据isRegistered值,只需将所需的片段(注册或交互)添加到容器中即可:

FragmentManager myFragmentManager = getFragmentManager();

    if (isRegistered) {
        FragmentTransaction fragmentTransaction = myFragmentManager
                .beginTransaction();
        fragmentTransaction.add(R.id.container, myFragmentRegistr, TAG_1);
        fragmentTransaction.commit();
    } else {
        FragmentTransaction fragmentTransaction = myFragmentManager
                .beginTransaction();
        fragmentTransaction.add(R.id.container, myFragmentInteract, TAG_1);
        fragmentTransaction.commit();
    }