登录界面 记住密码

试验运行结果图



主要代码

MainActivity

package com.example.minitwittersimulate;  
  
import android.app.Activity;  
import android.content.Intent;  
import android.content.SharedPreferences;  
import android.content.SharedPreferences.Editor;  
import android.os.Bundle;  
import android.os.Message;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.view.Window;  
import android.widget.Button;  
import android.widget.CheckBox;  
import android.widget.EditText;  
  
public class LoginActivity extends Activity {  
  
    static String YES = "yes";  
    static String NO = "no";  
    private CheckBox checkBox1;  
    private Button login;  
    private EditText edtuser, edtpsd;  
    static String name, password;  
    private String isMemory = "";// isMemory变量用来判断SharedPreferences有没有数据,包括上面的YES和NO  
    private String FILE = "saveUserNamePwd";// 用于保存SharedPreferences的文件  
    private SharedPreferences sp = null;// 声明一个SharedPreferences  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        setContentView(R.layout.activity_login);  
  
        login = (Button) findViewById(R.id.btnLogin);  
        edtuser = (EditText) findViewById(R.id.etUsername);  
        edtpsd = (EditText) findViewById(R.id.etPassword);  
        checkBox1 = (CheckBox) findViewById(R.id.cbRememberPass);  
        sp = getSharedPreferences(FILE, MODE_PRIVATE);  
        isMemory = sp.getString("isMemory", NO);  
        // 进入界面时,这个if用来判断SharedPreferences里面name和password有没有数据,有的话则直接打在EditText上面  
        if (isMemory.equals(YES)) {  
            name = sp.getString("name", "");  
            password = sp.getString("password", "");  
            edtuser.setText(name);  
            edtpsd.setText(password);  
        }  
        Editor editor = sp.edit();  
        editor.putString(name, edtuser.toString());  
        editor.putString(password, edtpsd.toString());  
        editor.commit();  
        // 触击登录按钮,执行remenber方法文本框里的信息重新写入SharedPreferences里面覆盖之前的,去除掉勾选框,触击登录按钮执行remenber方法就将之前保存到SharedPreferences的数据清除了  
        login.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                name = edtuser.getText().toString();  
                password = edtpsd.getText().toString();  
                remenber();  
                Intent it = new Intent(LoginActivity.this, MainActivity.class);// 跳转  
                startActivity(it);  
            }  
        });  
    }  
  
    // remenber方法用于判断是否记住密码,checkBox1选中时,提取出EditText里面的内容,放到SharedPreferences里面的name和password中  
    public void remenber() {  
        if (checkBox1.isChecked()) {  
            if (sp == null) {  
                sp = getSharedPreferences(FILE, MODE_PRIVATE);  
            }  
            Editor edit = sp.edit();  
            edit.putString("name", edtuser.getText().toString());  
            edit.putString("password", edtpsd.getText().toString());  
            edit.putString("isMemory", YES);  
            edit.commit();  
        } else if (!checkBox1.isChecked()) {  
            if (sp == null) {  
                sp = getSharedPreferences(FILE, MODE_PRIVATE);  
            }  
            Editor edit = sp.edit();  
            edit.putString("isMemory", NO);  
            edit.commit();  
        }  
    }  
}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 WinForm 中实现记住密码和自动登录功能,需要将用户输入的账号和密码保存到本地,下次启动程序时自动读取已保存的信息进行登录。以下是一个简单的实现步骤: 1. 在登录页面添加“记住密码”和“自动登录”选项,并将用户输入的账号和密码保存到本地,可以使用配置文件、注册表、数据库等方式进行存储。 2. 在程序启动时检查本地是否保存了用户登录信息,如果有则自动填充账号和密码,并触发登录按钮的 Click 事件进行自动登录。 3. 在用户手动退出登录时,清除本地保存的登录信息。 下面是一个示例代码: ```csharp private void LoginForm_Load(object sender, EventArgs e) { // 读取保存的登录信息 if (Properties.Settings.Default.RememberMe) { txtUsername.Text = Properties.Settings.Default.Username; txtPassword.Text = Properties.Settings.Default.Password; chkRememberMe.Checked = true; } if (Properties.Settings.Default.AutoLogin) { btnLogin.PerformClick(); } } private void btnLogin_Click(object sender, EventArgs e) { // 登录验证 if (ValidateUser(txtUsername.Text, txtPassword.Text)) { // 保存登录信息 if (chkRememberMe.Checked) { Properties.Settings.Default.Username = txtUsername.Text; Properties.Settings.Default.Password = txtPassword.Text; Properties.Settings.Default.RememberMe = true; Properties.Settings.Default.Save(); } else { Properties.Settings.Default.Username = ""; Properties.Settings.Default.Password = ""; Properties.Settings.Default.RememberMe = false; Properties.Settings.Default.Save(); } if (chkAutoLogin.Checked) { Properties.Settings.Default.AutoLogin = true; Properties.Settings.Default.Save(); } // 登录成功 this.DialogResult = DialogResult.OK; } else { // 登录失败 MessageBox.Show("登录失败,请检查账号和密码是否正确。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void btnLogout_Click(object sender, EventArgs e) { // 清除登录信息 Properties.Settings.Default.Username = ""; Properties.Settings.Default.Password = ""; Properties.Settings.Default.RememberMe = false; Properties.Settings.Default.AutoLogin = false; Properties.Settings.Default.Save(); // 退出登录 this.DialogResult = DialogResult.Cancel; } ``` 其中,Properties.Settings.Default 是一个应用程序配置文件,用于保存应用程序的配置信息。ValidateUser() 方法用于验证用户输入的账号和密码是否正确。需要注意的是,在实现自动登录功能时,需要先实现记住密码功能,否则自动登录时无法读取到密码信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值