您的位置:首页 > 移动开发 > Android开发

Android 记住密码功能

2013-04-17 14:52 357 查看
android 当中有集中数据存储方式,比如说sqlite,还有一个比较轻量级的,那就是SharedPreferences,记住密码功能也可以用这两种方法存储,我用的是SharedPreferences,这里也就介绍SharedPreferences。

如果第一次使用SharedPreferences,他会在/data/data/包命/shared_prefs/下生成xxx.xml,这个xxx.xml就是存储你的键值对,要实现记住密码功能,代码(工具类,用来将密码存入xml中和读取xml的密码):

package com.todoo.android.app.utils;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
*
* @author WangJintao
*
*         2013-4-17
*/
public class SaveUserInfUtils {

/**
* 保存用户名
*
* @param context
* @param name
* @param key
* @param value
* @return
*/
public static boolean saveName(Context context, String name, String key,
String value) {
SharedPreferences preferences = context.getSharedPreferences(name,
context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString(key, value);
return editor.commit();
}

/**
* 获取用户名
*
* @param context
* @param name
* @param key
* @return
*/
public static String getName(Context context, String name, String key) {
SharedPreferences preferences = context.getSharedPreferences(name,
context.MODE_PRIVATE);
return preferences.getString(key, null);
}
}
实现记住密码:

package com.example.savapsw;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {

EditText nameText, pswText;
CheckBox nameBox, pswBox;
Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameText = (EditText) findViewById(R.id.user_name);
pswText = (EditText) findViewById(R.id.user_psw);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
nameBox = (CheckBox) findViewById(R.id.save_name);
pswBox = (CheckBox) findViewById(R.id.save_psw);
// nameBox.setOnClickListener(this);
// pswBox.setOnClickListener(this);
// if (nameBox.isChecked()) {
if ("t".equals(SaveUtils.getName(getApplicationContext(), "test",
"nameBox"))) {
nameBox.setChecked(true);
}
nameText.setText(SaveUtils.getName(getApplicationContext(), "test",
"name"));
// }
// if (pswBox.isChecked()) {
pswText.setText(SaveUtils.getName(getApplicationContext(), "test",
"psw"));
// }
nameBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
SaveUtils.saveName(getApplicationContext(), "test",
"nameBox", "t");
} else {
SaveUtils.saveName(getApplicationContext(), "test",
"nameBox", "");
}
}
});
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
if (nameBox.isChecked()) {
nameBox.setChecked(true);
String name = nameText.getText().toString();
SaveUtils.saveName(getApplicationContext(), "test", "name",
name);
} else {
SaveUtils.saveName(getApplicationContext(), "test", "name", "");
}
this.finish();
break;

default:
break;
}

}

}
效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息