我一直试图为我的应用创建一个用户个人资料部分,用户输入他的信息(姓名,DoB,身高,体重等)并点击提交。在此之后,他将进入应用程序的主菜单。
我遇到的问题是,如果我关闭应用并再次运行,这显然会导致应用再次显示用户个人资料部分,并要求用户输入他的信息。
我一直试图寻找一种方法,让应用程序保存用户输入并记住的信息。因此,例如,当用户首次使用该应用程序时,他获取用户个人资料部分并输入他的信息。当用户关闭应用程序并再次打开它时,应立即将其带到主菜单。
我知道我可以通过首选项稍微实现这一点,但我宁愿使用普通的布局(LinearLayout),以便它为我提供更多选项,如TextView等。
有没有一种方法可以使用LinearLayout而不是Preferences来实现这一目标?
我也在考虑创建自定义偏好设置,但我发现的任何内容都没有特别有用。
提前致谢。
答案 0 :(得分:1)
使用SharedPreferences
。
检查首次运行的应用程序并显示要输入用户个人资料的布局。
在共享首选项中首次运行后存储布尔标志,这将阻止您的配置文件屏幕再次显示。
查看Check if application is on its first run
<强>更新强>
将此FirstRun()
代码放入主要活动的onCreate()
。
private void FirstRun()
{
SharedPreferences settings = this.getSharedPreferences(MainActivity.PREFS_NAME, 0);
boolean firstrun = settings.getBoolean("firstrun", true);
if (firstrun)
{
// Checks to see if we've ran the application b4
SharedPreferences.Editor e = settings.edit();
e.putBoolean("firstrun", false);
e.commit();
// Display User Profile Screen
}
}
答案 1 :(得分:0)
使用sharedPreference以这种方式存储信息..
final SharedPreferences pref1 = getSharedPreferences("myapp", MODE_PRIVATE);
SharedPreferences.Editor editor = pref1.edit();
editor.putString("userid", "success");
editor.commit();
并从代码中获取它的值..
final SharedPreferences pref1 = getSharedPreferences("myapp", MODE_PRIVATE);
String str1= pref2.getString("userid", null);
或尝试使用SqliteDatabase或可能是Application Class ..这将存储您想要的信息。
答案 2 :(得分:0)
@Override
public boolean saveUserData(UserModel userModel, Context context) {
email = userModel.getEmail();
firstName = userModel.getFirstName();
lastName = userModel.getLastName();
twitterId = userModel.getTwitterId();
SharedPreferences userData = context.getSharedPreferences(APP_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor setUserDataPreference = userData.edit();
setUserDataPreference.putString(EMAIL, email);
setUserDataPreference.putString(FIRST_NAME, firstName);
setUserDataPreference.putString(LAST_NAME, lastName);
setUserDataPreference.putString(TWITTER_ID, twitterId);
setUserDataPreference.commit();
return true;
}
@Override
public UserModel getUserData(Context context) {
UserModel userModel = new UserModel();
SharedPreferences userData = context.getSharedPreferences(APP_NAME,
Context.MODE_PRIVATE);
email = userData.getString(EMAIL, "");
firstName = userData.getString(FIRST_NAME, "");
lastName = userData.getString(LAST_NAME, "");
twitterId = userData.getString(TWITTER_ID, "");
userModel.setEmail(email);
userModel.setFirstName(firstName);
userModel.setLastName(lastName);
userModel.setTwitterId(twitterId);
return userModel;
}