问:如何在android studio中保存文本视图和复选框的值,以便稍后我进入该活动时以及在设置新值然后保持新值时可见设置的数据。
答:SharedPreferences用于在Android中存储原始数据类型,例如int,long,float,string。与Singleton类中存储数据相比,SharedPreferences具有一个额外的优势,因为Singleton类可以存储数据并在整个应用程序中可用,但是如果退出应用程序,所有数据将丢失。但是在SharedPreferences中,如果退出应用程序,或者即使关闭了Android设备,数据仍然会保留。
如何在SharedPreferences中存储数据
假设将用户ID存储在SharedPreferences中,请创建一个类SharedPrefernceManager并在其中定义以下方法。“ setUserId”方法将用于存储数据,“ getUserId”方法将用于获取数据。
私有静态最终字符串LOGIN_INFO =“ login_info”;
public void setUserId(Context context,String userId){
SharedPreferences首选项=(SharedPreferences)context.getSharedPreferences(LOGIN_INFO,0);
SharedPreferences.Editor编辑器= preferences.edit();
editor.putString(“ userId”,userId);
editor.commit();
}
公共字符串getUserId(上下文上下文){
SharedPreferences首选项=(SharedPreferences)context.getSharedPreferences(LOGIN_INFO,0);
返回preferences.getString(“ userId”,“”);
}
定义上述两种方法后,请从“活动”中调用“ setUserId”以存储数据。
存储数据:
SharedPreferenceManager preferenceManager = SharedPreferenceManager.getInstance();
preferencep.Manager.setUserId(mContext,“ 5”); //这里使用硬编码的用户ID(5)
提取数据:
要在任何活动中获取商店用户标识,可以使用以下代码:
SharedPreferenceManager preferenceManager = SharedPreferenceManager.getInstance();
preferenceManager.getUserId(mContext);
如何清除存储在SharedPreferences中的数据
在SharedPrefernceManager类中定义以下方法,然后从任何类中调用该方法以清除存储的数据。
公共静态无效clearCredentials(上下文上下文){
SharedPreferences首选项=(SharedPreferences)context.getSharedPreferences(LOGIN_INFO,0);
SharedPreferences.Editor编辑器= preferences.edit();
editor.clear();
editor.commit();
}