为什么第二次登录,并不没有自动输入用户名密码?

为什么第二次登录,并不没有自动输入用户名密码?

package com.example.storagedemo;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class ShareActivity extends AppCompatActivity {
private EditText accEdt,pwdEdt;//帐号、密码  输入框
   private Button login_btn;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_share);
       accEdt=findViewById(R.id.account_et);
       pwdEdt=findViewById(R.id.password_et);
       login_btn=findViewById(R.id.login_btn);
       /*第一次登录时,输入框里的内容为空,即为获得myshare文件中无该键值,显示参数2(空字符串)
       * 登录成功后(用户名和密码都正确后),则记录到myShare文件中,
       * 以后每次进入该页面,两个输入框则保留正确登录记录*/
//         SharePreference的读取
//         (1)获取SharePrefence对象(参数1:文件名  参数2:模式)
       SharedPreferences share=getSharedPreferences("myshare",MODE_PRIVATE);
//        (2)获取键值为account和pwd的内容,若无该键值,则读取参数2
       String accStr=share.getString("account","");
       String pwdStr=share.getString("pwd","");
//        (3)赋值给两个输入框控件accEdt、pwdEdt
       accEdt.setText(accStr);
       pwdEdt.setText(pwdStr);
//        获取输入框内容,校对是否等同用户名密码
    login_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //1 获取输入框内容
            String account=accEdt.getText().toString();
            String pwd=pwdEdt.getText().toString();
            //2 验证(admin  123)
            if(account.equals("admin")&&pwd.equals("123")){
//                 2.1存储信息到SharePreference
//                 (1)获取SharePreference对象(参数1:文件名 参数2:模式),如果不存在则创建,已存在直接打开文件.xml
                SharedPreferences share=getSharedPreferences("myShare",MODE_PRIVATE);
//                 (2)获取Editor对象
                SharedPreferences.Editor edt=share.edit();
//                 (3)存储信息
                edt.putString("account",account);
                edt.putString("pwd",pwd);
//                 (4)提交操作
                Toast.makeText(ShareActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
            }else{
                //2.2 验证失败,提示用户
                Toast.makeText(ShareActivity.this,"信息输入错误,登录失败",Toast.LENGTH_SHORT).show();
            }
        }
    });

   }
}
老师,以上是我的代码,但是成功登录后,第二次登录输入框依然为空,并不提示用户名密码。Android-Tool Windows-Device File Explorer看不到任何文件,进入手机里data下面也没有查看到相应的myshare文件?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

向edt存储数据后,别忘记调用commit()方法提交操作,否则数据修改无效。

  • 慕运维0750787 提问者 #1
    edt.commit(); 但是依然如此,第一次成功登录后,清除内存,第二次登录时依然没有用户名密码
    2019-03-10 09:58:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师