Android 存储值
Android Storing Values
我提前道歉,这听起来像是一个非常愚蠢的问题。我今天有点不适应。因此,我正在完成使用 REST API 进行身份验证的登录验证 activity。它工作得很好,但我希望成功将该电子邮件保存在一个对象中,以便应用程序的其余部分知道当前在应用程序中的用户的电子邮件。我创建了一个名为 AccountInformation 的 POJO class 来保存这封电子邮件(以及稍后的其他详细信息),但我对如何访问 class 之外的这些值一无所知。
例如,我必须在帐户修改 class 中进行调用,要求我在请求中发送电子邮件。但是电子邮件存储在我在单独的 activity 中创建的对象中。如果我说得不对,我很抱歉,但我现在真的觉得自己像个白痴,因为这应该很简单。
您应该将其存储在像 SharedPreferences
这样持久的东西中。当应用程序进入后台时,整个过程可能会在没有警告的情况下被破坏。当您 return 到应用程序时,您的 POJO 的字段将未初始化,或者对 POJO 本身的引用将为空,具体取决于它现在是否已初始化。
是的,这个应该简单。整个 Android 框架异常复杂且不必要地复杂。
保存共享首选项的简单示例User_name
@Override
enter code here
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String Name = settings.getString("user_name", "unknown");
}
@Override
protected void onStop(){ super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("user_name", mUserName);
// Commit the edits!
editor.apply();
我提前道歉,这听起来像是一个非常愚蠢的问题。我今天有点不适应。因此,我正在完成使用 REST API 进行身份验证的登录验证 activity。它工作得很好,但我希望成功将该电子邮件保存在一个对象中,以便应用程序的其余部分知道当前在应用程序中的用户的电子邮件。我创建了一个名为 AccountInformation 的 POJO class 来保存这封电子邮件(以及稍后的其他详细信息),但我对如何访问 class 之外的这些值一无所知。
例如,我必须在帐户修改 class 中进行调用,要求我在请求中发送电子邮件。但是电子邮件存储在我在单独的 activity 中创建的对象中。如果我说得不对,我很抱歉,但我现在真的觉得自己像个白痴,因为这应该很简单。
您应该将其存储在像 SharedPreferences
这样持久的东西中。当应用程序进入后台时,整个过程可能会在没有警告的情况下被破坏。当您 return 到应用程序时,您的 POJO 的字段将未初始化,或者对 POJO 本身的引用将为空,具体取决于它现在是否已初始化。
是的,这个应该简单。整个 Android 框架异常复杂且不必要地复杂。
保存共享首选项的简单示例User_name
@Override
enter code here
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String Name = settings.getString("user_name", "unknown");
}
@Override
protected void onStop(){ super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("user_name", mUserName);
// Commit the edits!
editor.apply();