Android-(14)SharedPreferences储存

获得SharedPreferences储存对象的三种方法:
Cntext类中的getSharedPreferences()方法
Activity 类中的 getPreferences()方法

PreferenceManager 类中的 getDefaultSharedPreferences()方法

这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。

得到了 SharedPreferences对象之后,就可以开始向SharedPreferences文件中存储数据了,主要可以分为3步实现。

调用 SharedPreferences 对象的edit()方法来获取一个 SharedPreferences. Editor 对象。

向SharedPreferences.Editor对象中添加数据,比如添加一个布尔型数据就使用 putBoolean()方法,添加一个字符串则使用putString()方法,以此类推。

调用apply()方法将添加的数据提交,从而完成数据存储操作。

存储

SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit();
editor.putString("name", "Tom");
editor.putInt("age", 20);
editor.putBoolean("married", false);
editor.apply();

可以点击右下角这个,然后找到这个目录,就可以看到。

读取

SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
String name = pref.getString("name","");
int age = pref.getInt("age",0);
boolean married = pref.getBoolean("married",false);
Log.d("MainActivity","name is :" + name);
Log.d("MainActivity","age is :" + age);
Log.d("MainActivity","married is :" + married);

之前的登录活动,增加记住密码功能:

public class LoginActivity extends BaseActivity {

    private EditText accountEidt ;
    private EditText passwordEidt ;
    private Button loginButton ;

    //新增记住密码
    private SharedPreferences pref;
    private SharedPreferences.Editor editor;
    private CheckBox rememberPass;

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

        accountEidt = (EditText)findViewById(R.id.account);
        passwordEidt = (EditText)findViewById(R.id.password);
        loginButton = (Button)findViewById(R.id.login);

        //新增记住密码
        pref = PreferenceManager.getDefaultSharedPreferences(this);
        rememberPass = (CheckBox)findViewById(R.id.remember_pass);
        boolean isRemember = pref.getBoolean("remember_password",false);
        if(isRemember){
            String account = pref.getString("account","");
            String password = pref.getString("password","");
            accountEidt.setText(account);
            passwordEidt.setText(password);
            rememberPass.setChecked(true);
        }

        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String account = accountEidt.getText().toString();
                String password = passwordEidt.getText().toString();
                if(account.equals("admin") && password.equals("123456"))
                {
                    //新增记住密码
                    editor = pref.edit();
                    if(rememberPass.isChecked()){
                        editor.putBoolean("remember_password",true);
                        editor.putString("account",account);
                        editor.putString("password",password);
                    }else{
                        editor.clear();
                    }
                    editor.apply();


                    Intent open_after_login_intent = new Intent(LoginActivity.this, AnotherActivity.class);
                    startActivity(open_after_login_intent);
                    finish();
                }
                else
                {
                    Toast.makeText(v.getContext(), "账号或密码错误", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值