voidCR 2019-01-02 21:37 采纳率: 25%
浏览 562
已采纳

求助,SharedPreferences 只能保存用户名,不能记住密码

我照着视频教程敲的代码,commit也写了,config.xml文件导出来看了一下确实也保存了,请问到底是哪里出了问题,是配置文件里少什么权限吗?

public class MainActivity extends AppCompatActivity {

    private EditText mEt_username;
    private EditText mEt_userpassword;
    private CheckBox mCb_ischeck;
    private SharedPreferences mSp;
    private Button mBtn_login;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //先初始化sp的实例
        /**
         * name 会自动生成"name.xml"文件
         * mode 模式
         */
        mSp = this.getSharedPreferences("config", MODE_PRIVATE);

        //找到控件
        mEt_username = (EditText) findViewById(R.id.et_username);
        mEt_userpassword = (EditText) findViewById(R.id.et_username);
        mCb_ischeck = (CheckBox) findViewById(R.id.cb_ischeck);
        mBtn_login = (Button) findViewById(R.id.btn_login);

        //在config.xml文件中取出数据,然后显示到EditText上
        String name = mSp.getString("name", "");
        String pwd = mSp.getString("pwd", "");
        mEt_username.setText(name);
        mEt_userpassword.setText(pwd);

    }

    public void login(View v) {

        String name = mEt_username.getText().toString().trim();
        String pwd = mEt_userpassword.getText().toString().trim();

        if (TextUtils.isEmpty(name) || (TextUtils.isEmpty(pwd))) {
            Toast.makeText(MainActivity.this, "用户名或密码不能为空", Toast.LENGTH_LONG).show();
        } else {
            if (mCb_ischeck.isChecked()) {
                //获取sp的编辑器
                SharedPreferences.Editor editor = mSp.edit();
                editor.putString("name", name);
                editor.putString("pwd", pwd);
                //记得把editor提交
                editor.commit();

                Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(MainActivity.this, "请勾选cb", Toast.LENGTH_LONG).show();
            }
        }
    }
}
  • 写回答

2条回答 默认 最新

  • 程序员小华006 2019-01-03 16:42
    关注

    //找到控件
    mEt_username = (EditText) findViewById(R.id.et_username);
    mEt_userpassword = (EditText) findViewById(R.id.et_username);

    你这里出错了,两个的id你都写了R.id.et_username

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?