qq_40206400 2018-10-26 08:11 采纳率: 0%
浏览 958

为什么退出app再进没有之前保存的账号密码?

下面是MainActivity.java

import android.support.v7.app.AppCompatActivity;
import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
    private EditText etNumber;
    private EditText etPassword;
    private CheckBox cbRemember;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        // 取出号码
        Map<String, String> userInfo = Utils.getUserInfo(this);
        if(userInfo != null) {
            // 显示在界面上
            etNumber.setText(userInfo.get("number"));
            etPassword.setText(userInfo.get("password"));
        }
    }

    private void initView() {
        etNumber = (EditText) findViewById(R.id.et_number);
        etPassword = (EditText) findViewById(R.id.et_password);
        cbRemember = (CheckBox) findViewById(R.id.cb_remember);
        findViewById(R.id.btn_login).setOnClickListener(this);
    }

    public void onClick(View v) {
        // 当点击登录时,获取QQ号码 和密码
        String number = etNumber.getText().toString().trim();
        String password = etPassword.getText().toString();
        // 校验号码和密码是否正确
        if(TextUtils.isEmpty(number)) {
            Toast.makeText(this, "请输入ID", Toast.LENGTH_SHORT).show();
            return;
        }
        if(TextUtils.isEmpty(password)) {
            Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
            return;
        }
        // 登录成功
        Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
        // 如果正确, 判断是否勾选了记住密码
        if(cbRemember.isChecked()) {
        Log.i("MainActivity", "记住密码: " + number + ", " + password);
        // 保存用户信息
        boolean isSaveSuccess = Utils.saveUserInfo(this, number, password);
        if(isSaveSuccess) {
            Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();
           }
           }
    }
}

Utils.java

 package com.open_open.myapplication;

import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class Utils {

    public static boolean saveUserInfo(Context context, String number,
                                       String password) {
        SharedPreferences sp = context.getSharedPreferences("data",
                Context.MODE_PRIVATE);
        Editor edit = sp.edit();
        edit.putString("userName", number);
        edit.putString("pwd", password);
        edit.putString("pwd", password);
        return true;
    }
            public static Map<String, String> getUserInfo(Context context) {
        SharedPreferences sp = context.getSharedPreferences("data",Context.MODE_PRIVATE);
        String number = sp.getString("userName", null);
        String password = sp.getString("pwd", null);
        Map<String, String> userMap = new HashMap<String, String>();
        userMap.put("number", number);
        userMap.put("password", password);
        return userMap;
    }
}

  • 写回答

2条回答 默认 最新

  • 普通网友 2018-11-15 10:57
    关注

    SharedPreferences sp = context.getSharedPreferences("data",
    Context.MODE_PRIVATE);
    Editor edit = sp.edit();
    edit.putString("userName", number);
    edit.putString("pwd", password);
    edit.putString("pwd", password);
    后面要调用edit.commit();才能缓存

    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示