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