记住密码

xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="116dp"
        android:layout_marginLeft="37dp"
        android:text="登陆" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="54dp"
        android:layout_toRightOf="@+id/button1"
        android:text="退出" />

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_alignLeft="@+id/button1"
        android:layout_marginBottom="17dp"
        android:text="记住密码" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="37dp"
        android:layout_toRightOf="@+id/button1"
        android:ems="10" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="68dp"
        android:ems="10" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/editText2"
        android:layout_alignParentLeft="true"
        android:text="账号"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@+id/editText2"
        android:text="密码"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

 

 

2.主代码

package com.example.m;

import com.example.m.R;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;

import android.view.View.OnClickListener;

public class Login 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
 
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
login = (Button) findViewById(R.id.login);
edtuser = (EditText) findViewById(R.id.edtuser);
edtpsd = (EditText) findViewById(R.id.edtpsd);
checkBox1 = (CheckBox) findViewById(R.id.checkbox1);
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(Login.this, Message.class);
startActivity(it);//跳转
}
});
}
public void remenber() {   // 这个方法用来判断是否记住密码,如果checkBox1被选中,那么就提取出EditText中内容放入ShartdPreferences里的name和password中
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();
}
}
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值