Android数据持久化技术 — — —SharedPreferences

时间:2023-03-09 17:12:43
Android数据持久化技术 — — —SharedPreferences

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;
}
}
}