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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘