我将在此之前加上我在Android上工作的新手。
因此,我必须处理现有应用并创建一个屏幕,提示用户输入用户名(如果未输入用户名),则不会启动当前现有的主要活动(即,它不会完全启动应用相反,只有在输入用户名之后才会坐在该屏幕上。)
我认为这相当于一个Web应用程序登录页面,如果用户未经过身份验证和授权,它将不会让用户通过该页面。但是,此应用程序中没有身份验证或授权。相反,在第一次运行时,用户必须只使用用户名注册,并且该用户名将保存到数据库中,对于任何后续运行,应用程序的主要活动将只是启动,因为用户已经注册到该手机。实际上,应用程序不会再次提示用户输入其名称,除非该应用程序被删除并包含其所有数据并重新安装。
这隐含意味着我必须将用户名保存在数据库或其他类型的存储中。
所以我想知道在具有现有主要活动的应用程序中执行此操作的最佳方式是什么?
我是否应该尝试在现有主要活动上完成此操作或创建新活动以显示此提示屏幕,并且实际上阻止主要活动运行直到用户输入其名称?
任何教程或链接都会有所帮助,并提前感谢您的帮助。
答案 0 :(得分:3)
让您的主要活动(家庭意图)成为要求提供凭据(用户名等)的对话活动。然后当用户按下提交(或任何你想要调用你的按钮)时,你可以启动应用程序的“主要”活动,即登录屏幕后的第一个活动。
启动登录界面时,检查用户是否已登录。如果是,请立即启动“主”活动并绕过登录。
答案 1 :(得分: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);
}
希望很清楚..
答案 2 :(得分:0)
也许与raju的答案相同 - 我这样做:
主要活动 oncreate:
if (!prefs.contains("username")) {
startActivity(new Intent(this, Login.class));
finish();
}
登录完成后登录类并保存“用户名”重新启动主要活动:
finish();
startActivity(new Intent(getApplicationContext(), Main.class));
很简单,但表现很好。