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

标签 java android sdk android-ndk

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

该应用程序的一部分是简化对学生电子邮件的访问,因为我们当前的大学网站有点乱。

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

仅当用户选择存储数据的选项时,才应存储数据。

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

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

我研究了几种不同的方法,但没有一种解释看起来很直接,而且很多教程都使用我不知道如何转换的值。

*请注意,我是 Android 开发的新手,因为我今年才开始接触它!

谢谢!

T.J.

最佳答案

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

如果您提供您的代码,它很容易为您提供更好的帮助! 希望对您有所帮助。

关于java - 使用 Android SharedPreferences 或 Internal Storage 在本地存储 EditText 字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21708009/

相关文章:

php - Google API PHP SDK 获取用户信息的方法

objective-c - 写入 SQLite 数据库。奇怪的东西

java - 更改 ObjectMap 以存储在 json Libgdx 中

android - 如何在 android 上添加叠加层以映射?

android - 当我运行 android studio 2.2.3 时,会显示这些消息并且无法运行我的项目。我该如何解决?

android - 模拟器 kitkat API 级别 19 中的 Google Play 服务错误

sdk - 如何检测 Corona SDK 中的 TouchOut 事件?

java - JPA Criteria 使用单表继承查询实体层次结构

java - 检查 UTF-8 数据类型 3 字节或 4 字节 Unicode

java - Hashtable 适合存储 Assets 吗?