0

我会以我对 Android 工作非常陌生。

因此,我必须在现有应用程序上工作并创建一个屏幕,如果未输入用户名,则提示用户输入用户名,那么它将不会启动当前存在的主要活动(即它不会完全启动应用程序。而是它只会坐在那个屏幕上,直到输入用户名。)

我想这相当于一个网络应用程序登录页面,因为如果用户没有经过身份验证和授权,它不会让用户通过该页面。但是,此应用程序中没有身份验证或授权。相反,在第一次运行时,用户必须简单地注册一个用户名,并且该用户名被保存到数据库中,并且对于任何后续运行,应用程序的主要活动将简单地启动,因为用户已经注册到该手机。事实上,除非应用程序连同其所有数据一起被删除并重新安装,否则应用程序不会再次提示用户输入他们的姓名。

这隐含地意味着我必须将用户名保存在数据库或其他某种存储中。

所以我想知道在具有现有主要活动的应用程序中执行此操作的最佳方法是什么?

我应该尝试在现有的主要活动上完成此操作,还是创建一个新活动来显示此提示屏幕,并且实际上阻止主要活动运行,直到用户输入他们的姓名?

任何教程或链接都会有所帮助,并提前感谢您的帮助。

4

3 回答 3

3

让您的主要活动(家庭意图)成为要求凭据(用户名等)的对话活动。然后,当用户按下提交(或任何您想调用的按钮)时,您将启动应用程序的“主要”活动,即登录屏幕后的第一个活动。

启动登录屏幕时,检查用户是否已经登录。如果是,立即启动“主要”活动并绕过登录。

于 2012-04-10T17:38:15.730 回答
2

为用户名和密码创建登录活动.. 如果用户是新用户..第一次注册... 然后获取输入的值并使用共享首选项存储它们并打开活动..像这样..

 SharedPreferences pref = context.getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE);


pref.edit().putString("USERNAME", "PASSWORD").commit();<--Here use real username and password..


 pref.edit().clear().commit();
 Intent i=new Intent(this,youractivity.class);
startActivity(i);

别的

让用户输入用户名和密码字段..然后在这样的共享首选项中检查它们..

   SharedPreferences pref = context.getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE);
    String pswrd= pref.getString("Username", "somevalue");<--use entered username

如果 pswrd 与输入的密码匹配.. 开始主要活动..

  if(pswrd==entered password){
 Intent i=new Intent(this,youractivity.class);
startActivity(i);
  }

希望清楚..

于 2012-04-10T17:47:29.573 回答
0

也许和 raju 的回答一样——我是这样做的:

主要活动oncreate:

if (!prefs.contains("username")) {
    startActivity(new Intent(this, Login.class));
    finish();
}

登录完成并保存“用户名”时的登录类重新启动主活动:

finish();
startActivity(new Intent(getApplicationContext(), Main.class));

非常简单但性能很好。

于 2012-04-10T18:03:01.937 回答