SharedPreferences是使用键值对的方式来存储数据。

要想使用SharedPreferences来存储数据,必须获取SharedPreferences对象,获取SharedPreferences对象的方法。


 

Context.getSharedPreferences( )


 

Activity.getPreferences( )


 

PreferenceManager.getDefaultSharedPreferences( )


 

 

方式:

1、获取SharedPreferences对象

2、通过SharedPreferences对象的edit( )方法获取SharedPreferences.Editor对象

3、向SharedPreferences.Editor对象中添加数据

4、使用commit( )方法提交数据

 


package com.example.sharedprferencestest;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity implements View.OnClickListener{

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

Button save_btn = (Button)findViewById(R.id.save_button);
save_btn.setOnClickListener(this);
}

@Override
public void onClick(View v) {

SharedPreferences sharedPreferences = getSharedPreferences("data2",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("用户名","wz");
editor.putString("密码","root");
editor.putBoolean("是否保存密码",false);
editor.commit();
}
}



package com.example.sharedprferencestest;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements View.OnClickListener{

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

Button save_btn = (Button)findViewById(R.id.save_button);
save_btn.setOnClickListener(this);

Button restore_btn =(Button)findViewById(R.id.restore_button);
restore_btn.setOnClickListener(this);
}

@Override
public void onClick(View v) {

SharedPreferences sharedPreferences = getSharedPreferences("data2", MODE_PRIVATE);
switch(v.getId()){
case R.id.save_button:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("用户名","wz");
editor.putString("密码", "root");
editor.putBoolean("是否保存密码", false);
editor.commit();
break;
case R.id.restore_button:
String username = sharedPreferences.getString("用户名",null);
String password = sharedPreferences.getString("密码",null);
boolean hint = sharedPreferences.getBoolean("是否改变密码", false);
Toast.makeText(getApplicationContext(),username,Toast.LENGTH_SHORT).show();
break;
default:
break;
}

}
}


记住密码案例
package com.example.account;

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

public class MainActivity extends Activity implements View.OnClickListener{

private Button btn;
private EditText account;
private EditText password;
private CheckBox rememberPassword;

private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;


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

account = (EditText)findViewById(R.id.account);
password = (EditText)findViewById(R.id.password);
btn = (Button)findViewById(R.id.login);
rememberPassword = (CheckBox)findViewById(R.id.remember_password);

sharedPreferences = getSharedPreferences("login", MODE_PRIVATE);
editor = sharedPreferences.edit();

boolean isRemember = sharedPreferences.getBoolean("isRemember",false);

if(isRemember){
String username = sharedPreferences.getString("account","");
String pwd = sharedPreferences.getString("password","");
account.setText(username);
password.setText(pwd);
rememberPassword.setChecked(true);
}

btn.setOnClickListener(this);

}

@Override
public void onClick(View v) {

switch (v.getId()){
case R.id.login:
String accountContent = account.getText().toString();
String passwordContent = password.getText().toString();
if(accountContent.equals("root") && passwordContent.equals("root")){
if(rememberPassword.isChecked()){
editor.putString("account",accountContent);
editor.putString("password",passwordContent);
editor.putBoolean("isRemember",true);
}else{
editor.clear();
}
editor.commit();
Intent intent = new Intent();
intent.setClass(MainActivity.this,LoginSuccess.class);
startActivity(intent);
finish();
}else{
Toast toast = Toast.makeText(MainActivity.this,"account or password is invalid",Toast.LENGTH_SHORT);
toast.show();
}
break;
default:
break;
}
}
}