Android studio登录界面之记住密码

您所在的位置:网站首页 android做一个登录界面 Android studio登录界面之记住密码

Android studio登录界面之记住密码

2023-11-16 05:38| 来源: 网络整理| 查看: 265

登录界面之记住密码

文章目录 登录界面之记住密码文件存储的方式:记住密码存储数据读取数据完整代码 登录界面的博客: https://blog.csdn.net/genijmni/article/details/106240013欢迎大家前来一同学习。 效果如下: 记住密码 上图为记住密码演示,下图为不记住密码演示

不记住密码

文件存储的方式: 把数据存储到文件中SharedPreferences存储SQLite数据库存储

这三种方式都能完成我们对数据的存储与读取,但配合记住密码的演示,我们采取第二种方式——SharedPreferences存储。

记住密码

在上一篇以及提到,记住密码需要一个控件:CheckBox,这是一个单选控件。 除了控件我们还需要利用SharedPreferences,进行数据的存储与读取。

private SharedPreferences preferences; //利用SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); private SharedPreferences .Editor editor; private CheckBox remember; //定义记住密码 remember = (CheckBox) findViewById(R.id.remember);

完成这些控件和方法的定义后,我们需要理清楚逻辑:

将我输入在EditText的账号密码存储到SharedPreferences里当我勾选记住密码时,下一次启动APP,自动读取SharedPreferences中的数据当我取消勾选记住密码时,下一次启动App,取消读取SharedPreferences中的数据 存储数据 boolean isRemember = preferences.getBoolean("remember_password",false); if (isRemember){ String Name = preferences.getString("Name",""); String Password = preferences.getString("Password",""); NameEdit.setText(Name); PasswordEdit.setText(Password); remember.setChecked(true); }

这一步将输入的数据存储到SharedPreferences,不管是否能够登录。

读取数据

这里利用==if{}else{}==逻辑,完成是否读取数据的操作

editor = preferences.edit(); if(remember.isChecked()){ editor.putBoolean("remember_password",true); editor.putString("Name",Name); editor.putString("Password",Password); }else{editor.clear();} editor.apply();

isChecked为是否勾选了记住密码,当勾选了。下次启动App后,完成记住项目,若没有勾选,则不启动读取。 效果如下: 记住密码 上图为记住密码演示,下图为不记住密码演示 不记住密码

完整代码 public class MainActivity extends AppCompatActivity { private SharedPreferences preferences; private SharedPreferences .Editor editor; private EditText NameEdit; private EditText PasswordEdit; private Button login; private CheckBox remember; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); preferences = PreferenceManager.getDefaultSharedPreferences(this); NameEdit = (EditText) findViewById(R.id.Name); PasswordEdit = (EditText) findViewById(R.id.Password); remember = (CheckBox) findViewById(R.id.remember); login = (Button) findViewById(R.id.login); boolean isRemember = preferences.getBoolean("remember_password",false); if (isRemember){ String Name = preferences.getString("Name",""); String Password = preferences.getString("Password",""); NameEdit.setText(Name); PasswordEdit.setText(Password); remember.setChecked(true); } login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String Name = NameEdit.getText().toString(); String Password = PasswordEdit.getText().toString(); if (TextUtils.isEmpty(NameEdit.getText().toString()) || TextUtils.isEmpty(PasswordEdit.getText().toString())) { Toast.makeText(MainActivity.this, "用户名或者密码不能为空", Toast.LENGTH_SHORT).show(); } else if(Name.equals("CSDN")&&Password.equals("12345678")){ editor = preferences.edit(); if(remember.isChecked()){ editor.putBoolean("remember_password",true); editor.putString("Name",Name); editor.putString("Password",Password); }else{editor.clear();} editor.apply(); Intent intent = new Intent(MainActivity.this,Receiver.class); intent.putExtra("Name",Name); intent.putExtra("Password",Password); startActivity(intent); Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show(); finish(); }else {Toast.makeText(MainActivity.this,"账号密码错误",Toast.LENGTH_SHORT).show();} } }); } }

下一次讨论一下APP的启动动画,和软件的隐藏标题和隐藏系统状态栏是如何完成的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3