使用Android SharedPreferences或Internal Storage在本地存储EditText字段的值

时间:2014-02-11 16:52:53

标签: java android sdk android-ndk

我目前正在大学做一个项目,我们正在为学生创建和应用。

该应用程序的一部分是轻松访问学生电子邮件,因为我们目前的大学网站有点遍布。

基本上我要做的是将他们输入的用户电子邮件和密码存储到我拥有的EditTexts中。

只有在用户选择存储数据的选项时才应存储数据。

此外,如果用户已经存储了数据,它将跳过登录页面并直接进入Webview。

有没有人有关于如何做到这一点的任何示例或任何提示?

我看了几种不同的方法,但没有一个解释看起来很简单,许多教程都在使用我不知道如何转换的值。

*请注意我对Android开发相对较新,因为我今年才开始使用它!

谢谢!

T.J。

2 个答案:

答案 0 :(得分:1)

您可以将其保存到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;
}

如果您提供代码,可以更轻松地帮助您! 希望这有帮助。

答案 1 :(得分:0)

最好在设备上使用SQLite数据库。这样,如果应用程序扩展了它的需要,可以通过相应地添加表或列来轻松扩展它。它还可以用于存储多个帐户,以便您可以对设备本身的登录进行验证。

请查看这些示例以获取有关使用SQLite数据库的帮助:

Example 1 with Vogella

Example 2 with Android Hive

如果你首先看一下Android Hive,它可以很好地解释它是如何工作的,就像Vogella向你展示如何在你的代码中实现它一样。