失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android开发实例之minitwitter登录界面+代码 登录界面_记住密码

android开发实例之minitwitter登录界面+代码 登录界面_记住密码

时间:2020-04-25 10:14:15

相关推荐

android开发实例之minitwitter登录界面+代码 登录界面_记住密码

实现登录界面的记住密码功能

实验目的

1、掌握SharedPreferences类,这个类可以实现简单的存储,主要用于保存窗口状态

实验效果

主要代码

LoginActivity

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());

mit();

// 触击登录按钮,执行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);

mit();

} else if (!checkBox1.isChecked()) {

if (sp == null) {

sp = getSharedPreferences(FILE, MODE_PRIVATE);

}

Editor edit = sp.edit();

edit.putString("isMemory", NO);

mit();

}

}

}

实验反思

不断加强读代码的能力,多看案例;

提高相关方法的熟练程度;

不能忽视细节;

如果觉得《android开发实例之minitwitter登录界面+代码 登录界面_记住密码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。