[英]Android Edittext Putting edittext values into array and Sharedpreferences
[英]Using Android SharedPreferences or Internal Storage to store values of EditText fields locally
我目前正在大学里做一个项目,我们正在为学生创建和应用程序。
该应用程序的一部分正在简化对学生电子邮件的访问,因为我们当前的大学网站遍布各处。
基本上,我想做的是存储用户输入到我拥有的EditText中的电子邮件和密码。
仅当用户选择存储数据的选项时,才应存储数据。
同样,如果用户已经存储了数据,则应跳过具有登录名的页面,然后直接进入Webview。
是否有人对此有任何示例或提示?
我研究了几种不同的方法,但没有一种解释看起来很简单,许多教程使用的是我不知道如何转换的值。
*请注意,由于我今年才参加Android开发,所以我相对较新!
谢谢!
TJ
您可以将其保存到sharedPreferences中。 您可以这样操作:
/** Constant to identify your sharedPref */
public static final String MY_SHARED_PREFERENCES = "mySharedPrefInstance";
public static final String USER_TAG = "sharedPrefsUserTag";
// Get shared preferences
SharedPreferences sharedPref = getSharedPreferences(MY_SHARED_PREFERENCES, MODE_PRIVATE);
// Check if sharedPreferences already contain this user
if (sharedPref.getString(USER_TAG) == textView.gettext()) {
// The user is already saved
} else {
// Save a string obj
sharedPref.edit().putString(USER_TAG, editTextUser.getText());
// Save password too
sharedPref.edit().putString(PWD_TAG, editTextPwd.getText());
// Maybe, you would to encrypt the pwd (I recommend this)
// So, for example:
sharedPref.edit().putString(PWD_TAG, MD5( editTextPwd.getText() ) );
// Commit changes
sharedPref.commit();
}
/** Encrypt params string with MD5 algorithm */
public static String MD5(String md5) {
try {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
byte[] array = md.digest(md5.getBytes());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
} catch (java.security.NoSuchAlgorithmException e) { }
return null;
}
如果提供您的代码,很容易为您提供更好的帮助! 希望能有所帮助。
最好在设备上使用SQLite数据库。 这样,如果应用程序需要扩展,可以通过相应地添加表或列来轻松扩展它。 然后,它也可以用于存储多个帐户,以便您可以在设备本身的登录名上进行验证。
请看以下示例,以帮助使用SQLite数据库:
如果您先看一下Android Hive,就可以很好地解释它的工作原理,就像Vogella确切地向您展示了如何在代码中实现它一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.