我有一个用户登录应用程序,它从用户那里获取电子邮件和密码。我想将电子邮件和密码保存在手机缓存中,这样用户就不必再次输入。有没有办法在android缓存中保存数据。提前谢谢。
答案 0 :(得分:4)
我认为您需要使用SharedPreference
来保存您的设备中的应用程序时的数据。从设备卸载应用程序后,数据将被删除。
1)将数据保存到SharedPreference
:
SharedPreferences prefs = getSharedPreferences("UserData", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
2)从SharedPreference
检索数据:
SharedPreference prefs = getSharedPreferences("UserData", MODE_PRIVATE);
String username = prefs.getString("username","");
String pwd = prefs.getString("password","");
答案 1 :(得分:2)
您可以使用SharedPreferences
来实现..
SharedPreferences wmbPreference1,wmbPreference2;
SharedPreferences.Editor editor;
//wmbPreference for Shared Prefs that lasts forever
wmbPreference1 = PreferenceManager.getDefaultSharedPreferences(this);
//installsp for Shared Prefs that lasts only just once each time program is running
wmbPreference2 =getApplicationContext().getSharedPreferences("install_code_prefs",Activity.MODE_PRIVATE);
保存值
SharedPreferences.Editor editor = wmbPreference1.edit();
editor.putString("MYKEY", "12345");
editor.commit();
您可以检索
之类的值String Phonenumber = wmbPreference1.getString("MYKEY", "");
其中 MYKEY 是您可以识别该值的键名..
答案 2 :(得分:1)
此类型的SharedPreferences 远比使用应用程序缓存更简单。
有关SharedPreferences阅读文档的更多信息,您可以拥有与活动或活动相关的SharedPreferences(它会在保存的位置发生变化。)
要访问默认的共享首选项,您将使用名为PreferenceManager
的{{1}}静态方法,该方法将上下文作为参数(如果您在活动中,则为getDefaultSharedPreferece
)
this
现在使用此SharedPreferences实例,您可以读取保存在此文件中的所有内容。
要阅读,您将使用方法sharedPreferences.get(String / Int / Long / Float等)。
读取用户的电子邮件和密码的示例,您可以写
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
("密码",null)
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String email = sharedPreferences.getString("email", null);
String password = sharedPreferences.getString("password", null");
对,因此您在阅读时和写入时应使用相同的密钥以确保更新/读取相同的值。key=value
将为password
。 现在,如果您执行此代码,则电子邮件和密码将为null
,因为您没有添加任何内容。
要在文件中添加内容,您应该使用null
,其中包含编辑键值对的所有方法。要创建此对象,您将在我们的sharedPreference变量中调用方法SharedPreferences.Editor
。
edit()
现在我们将使用我们的SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPreferences.edit();
变量来保存我们的数据。
与read一样,它有像put(String / Int / Long)这样的方法(与put一样只读)
因此我们要保存用户的电子邮件和密码,因为我们将使用字符串editor
putString
它类似于我们上面所看到的,但有所不同:虽然editor.putString("password", "helloWorld");
仍然是使用的关键(注意:它与读取线的相同),第二个参数是值,因为名称表示我们应该写为密码。在这种情况下,它会将password
保存为密码。
对于电子邮件,将helloWorld
替换为包含密码的变量。
请记住,当您准备好在文件中保存值时,应该调用helloWorld
(编辑)。 (如果你不这样做,你就不会更新文件中的值。)
您的代码如下所示:
.commit()
现在,当您再次执行阅读代码时,您将在电子邮件SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("email", "helloWorld@gmail.com");
editor.putString("password", "helloWorld");
editor.commit();
和密码helloWorld@gmail.com
中阅读。
答案 3 :(得分:0)
答案 4 :(得分:0)
1.在您的班级中声明这些变量/常量
private SharedPreferences prefs = null;
public static final String MY_PREFERENCE = "my_preference";// preference name
public static final String USER_NAME = "username"; // key for username
public static final String PASSWORD = "passoword";//key for password
2.现在用方法保存用户和密码
prefs = getSharedPreferences(MY_PREFERENCE, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(USER_NAME, username);
editor.putString(PASSWORD, password);
editor.commit();
用户名,密码是您从用户输入获得的字符串。