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条)

报告相同问题?

悬赏问题

  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义