8 使用sharedpreferces

package com.itheima27.qqlogin;


import java.util.Map;


import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;


import com.itheima27.qqlogin.utils.UtilsOfSharedPreference;


public class MainActivity extends Activity implements OnClickListener {


private static final String TAG = "MainActivity";
private EditText etNumber; // 号码的输入框控件
private EditText etPassword;// 密码的输入框控件
private CheckBox cbRemerberPWD;// 记住密码


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//this.getFilesDir(); // /data/data/com.itheima27.qqlogin1/files/itheima27.txt
//this.getCacheDir(); // /data/data/包名/cache/

init();

// 读取信息
/*String text = UtilsOfSharedPreference.getUserInfo(this);
if(!TextUtils.isEmpty(text)) {

// 123##abc
String[] strArray = text.split("##");
etNumber.setText(strArray[0]);
etPassword.setText(strArray[1]);
}*/


Map<String, String> userInfo = UtilsOfSharedPreference.getUserInfo(this);
if(userInfo != null) {
etNumber.setText(userInfo.get("number"));
etPassword.setText(userInfo.get("password"));
}
}

private void init() {
etNumber = (EditText) findViewById(R.id.et_number);
etPassword = (EditText) findViewById(R.id.et_password);
cbRemerberPWD = (CheckBox) findViewById(R.id.cb_remerber_password);

findViewById(R.id.btn_login).setOnClickListener(this);
}


public void onClick(View v) {
// 取出号码和密码
String number = etNumber.getText().toString();
String password = etPassword.getText().toString();

// 校验帐号和密码
if(!TextUtils.isEmpty(number) && !TextUtils.isEmpty(password)) { // 号码和密码不为空
// 如果登录成功, 判断是否记住密码
Toast.makeText(this, "登录成功", 0).show();

if(cbRemerberPWD.isChecked()) { // 需要记住密码
Log.i(TAG, "记住帐号和密码: " + number + " = " + password);

// 存储帐号和密码
if(UtilsOfSharedPreference.saveUserInfo(this, number, password)) {
Toast.makeText(this, "保存成功", 0).show();
} else {
Toast.makeText(this, "保存失败", 0).show();
}
}

} else {
Toast.makeText(this, "请正确输入", 0).show();
}

}


}





package com.itheima27.qqlogin.utils;



import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;


import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Environment;
import android.text.TextUtils;


public class UtilsOfSharedPreference {


/**
* 保存用户信息
* @param number
* @param password
*/
public static boolean saveUserInfo(Context context, String number, String password) {
try {

// /data/data/包名/shared_prefs/itheima27.txt
SharedPreferences sp = context.getSharedPreferences("itheima27", context.MODE_PRIVATE);


Editor edit = sp.edit(); // 获得sharedPreference编辑器对象

// 存数据
edit.putString("number", number);
edit.putString("password", password);
edit.commit(); // 提交, 数据已经通过xml方式保存到文件中

return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}

/**
* 获取用户信息
* @return
*/
public static Map<String, String> getUserInfo(Context context) {
try {
SharedPreferences sp = context.getSharedPreferences("itheima27", Context.MODE_PRIVATE);

String number = sp.getString("number", null);  // null 若娶不到数据 则返回空
String password = sp.getString("password", null);

if(!TextUtils.isEmpty(number) && !TextUtils.isEmpty(password)) {
Map<String, String> userMap = new HashMap<String, String>();
userMap.put("number", number);
userMap.put("password", password);
return userMap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

}








SharedPreference使用:


// /data/data/包名/shared_prefs/itheima27.txt
context.getSharedPreferences("itheima27.txt", context.MODE_PRIVATE); // 指定访问的模式为:私有模式.


存数据时:
1. 获得SharedPreferences对象 context.getSharedPreferences("itheima27.txt", context.MODE_PRIVATE);
2. 获得编辑器对象  Editor e = sp.edit();
3. 使用Editor对象存储数据  editor.putString
4. 存储完数据记住commit


去数据时:
1.获得SharedPreferences对象 context.getSharedPreferences("itheima27.txt", context.MODE_PRIVATE);
2.根据key值取相应的value值 sp.getString(key, defaultValue);


android下权限:
私有文件,
可读文件,
可写文件,
可读可写文件.




Xml文件:
1.序列化xml
2.解析xml



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值