使用SharedPreferences保存用户名和密码实例

SharedPreferences存储是什么?
  • SharedPreferences是Android平台上一个轻量级的存诸类,用来存储少量数据时简单、便捷(如:保存记住密码状态,设置开关状态等)。
  • 以key-values( 键值对)形式存储数据,可以存储的数据类型为:String,float,int,long,boolean。
  • 存储位置在/data/data/<包名>/sharedprefs目录下。
  • 保存的数据以XML形式存储。
SharedPreferences怎么用?

获取SharedPreferences对象
获取Editor对象
通过Editor对象的putXXX函数,设置写入数据;(XXX是类型)
通过Editor对象的commit提交写入。

使用SharedPreferences保存用户名和密码

代码展示:

package com.example.abc.app2;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private EditText edi;//用户名EditText
    private EditText edi1;//密码EditText
    private CheckBox checkBox;//单选框
    private Button btn;//登录
    private int Remember;//定义一个int类型的变量
    private String password;//全局的密码

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

        SharedPreferences sharedPreferences = getSharedPreferences("mysp.xml", MODE_PRIVATE);
        //从sp文件(mysp.xml)里取出对应的值
        if (sharedPreferences != null) {//判断文件是否存在
            String name = sharedPreferences.getString("name", "");//取出用户名
            password = sharedPreferences.getString("password", "");//取出密码(全局密码方便其他地方用)
            Remember = sharedPreferences.getInt("check", 0);//取出单选框给的是什么值
            //第一个参数相当于暗号,第二个参数默认值相当于初始值
            edi.setText(name);//把name取出的值赋给用户名
        }
        if (Remember == 1) {//如果单选框中的值为1是
            checkBox.setChecked(true);//单选框默认选中
            edi1.setText(password);//把password取出的值赋给密码
        }


        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = edi.getText().toString();//接收用户名EditText内容
                password = edi1.getText().toString();//接收密码EditText内容

                SharedPreferences sp = getSharedPreferences("mysp.xml", MODE_PRIVATE);
                //创建SharedPreferences对象
                SharedPreferences.Editor editor = sp.edit();
                //创建Editor对象写入值

                editor.putString("name", name);//保存用户名
                editor.putString("password", password);//保存密码

                if (checkBox.isChecked()) {//判断单选框是否被点击
                    Remember = 1;//设值为1(暗号)
                    editor.putInt("check", Remember);
                } else {
                    Remember = 0;//没点击则值设为0
                    editor.putInt("check", Remember);
                }

                editor.commit();//提交
                Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();

            }
        });
    }

    private void bindID() {//绑定ID
        edi = findViewById(R.id.main_edi);
        edi1 = findViewById(R.id.main_edi1);
        checkBox = findViewById(R.id.main_rab);
        btn = findViewById(R.id.main_btn);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值