您的位置:首页 > Web前端

SharedPreferences

2015-11-20 10:15 459 查看
这里只是简单的使用了sharedPreferences,但实际要用使用记住密码这个功能要把密码加密

activity_main.xml

<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:orientation="vertical"
>

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="username"
android:id="@+id/username"/>

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="password"
android:id="@+id/password"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:id="@+id/login"/>

<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="记住密码"/>

<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/remeber"/>

</LinearLayout>

</LinearLayout>


MainActivity.java

//全局变量
CheckBox remeber;
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
EditText username ;
EditText password ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

sharedPreferences = getSharedPreferences("user", MODE_PRIVATE);
editor = sharedPreferences.edit();
username = (EditText) MainActivity.this.findViewById(R.id.username);
password = (EditText) MainActivity.this.findViewById(R.id.password);
remeber = (CheckBox) this.findViewById(R.id.remeber);

if(sharedPreferences.getBoolean("isRemeber", false)){
remeber.setChecked(true);
username.setText(sharedPreferences.getString("username","error"));
password.setText(sharedPreferences.getString("password","error"));
}

Button btn_login = (Button) this.findViewById(R.id.login);
btn_login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {

String userNmae = username.getText().toString();
String passWord = password.getText().toString();

if (userNmae.equals("123") && passWord.equals("123")) {

if (remeber.isChecked()) {
editor.putBoolean("isRemeber", true);
editor.putString("username", userNmae);
editor.putString("password", passWord);
} else {
editor.clear();
}
editor.commit();
Toast.makeText(MainActivity.this,"登入成功",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this,"登入失败",Toast.LENGTH_SHORT).show();
}
}

});

}




2016/05/30 更新

SharedPreferences工具类

1.存储:SharedpreferencesUtil.putParams(this, “name”, “1111”);

2.拿值:SharedpreferencesUtil.getParams(this, “name”);

package com.example.learing;

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

/**
*
* @author yj
* Sharedpreferences 工具类
* 单例模式
* Sharedpreferences 不适用多线程场景
*/
public class SharedpreferencesUtil {
public static SharedPreferences sharedPreferences;
public static Editor editor;
private static String fileName = "user";

private SharedpreferencesUtil() {}

/**
* 存储
* @param context
* @param key
* @param value
* @return
*/
public static boolean putParams(Context context, String key, String value) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(fileName, context.MODE_PRIVATE);
editor = sharedPreferences.edit();
}
editor.putString(key, value);
return editor.commit();
}

/**
* 拿数据
* @param context
* @param key
* @return
*/
public static String getParams(Context context, String key) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(fileName, context.MODE_PRIVATE);
}
return sharedPreferences.getString(key, "没有数据!");
}

}


2016/06/01更新

// 使用application的context,在application类设置一次就行了
SharedpreferencesUtil.setContext(getApplicationContext());

SharedpreferencesUtil.putParams("123", "123");
SharedpreferencesUtil.getParams("123");


package com.example.learing;

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

/**
*
* @author yj
* Sharedpreferences 工具类
* 单例模式
* Sharedpreferences 不适用多线程场景
* 原则:使用起来简单,尽量少的代码和一个类不依赖别的类
* 注意推荐 :在application里设置context
*/
public class SharedpreferencesUtil {
public static SharedPreferences sharedPreferences;
public static Editor editor;
private static String fileName = "user";
private static Context mContext;

private SharedpreferencesUtil() {}

/**
* 设置context 一般使用application的context
* 不设置context将无法使用
* @param context
*/
public static void setContext(Context context) {
mContext = context;
}

/**
* 存储
* @param context
* @param key
* @param value
* @return
*/
public static boolean putParams(String key, String value) {
if(!checkContext()) {
return false;
}

if (sharedPreferences == null) {
sharedPreferences = mContext.getSharedPreferences(fileName, mContext.MODE_PRIVATE);
editor = sharedPreferences.edit();
}
editor.putString(key, value);
return editor.commit();
}

/**
* 拿数据
* @param context
* @param key
* @return
*/
public static String getParams(String key) {
if(!checkContext()) {
return "没有context!不能获取值";
}

if (sharedPreferences == null) {
sharedPreferences = mContext.getSharedPreferences(fileName, mContext.MODE_PRIVATE);
}
return sharedPreferences.getString(key, "没有数据!");
}

/**
* 检查context是否为null
* 如果没有context == null,手动抛出一个异常中断程序。
* @return
*/
private static boolean checkContext() {
if (mContext == null) {
Log.v("TAG", "在SharedpreferencesUtil没有设置context");
throw new RuntimeException("在SharedpreferencesUtil没有设置context");
} else {
return true;
}
}

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