安卓使用之SharedPreferences共享数据

这篇博客介绍了如何利用SharedPreferences在Android中存储用户登录信息,以便用户在退出后重新打开应用时能保持登录状态。当用户登录成功,程序会将用户名和消息计数存储到SharedPreferences的xml文件中。如果检测到已存储的登录信息,应用程序会自动显示已登录的提示,避免用户重复输入密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存储数据

SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sp.edit(); 
editor.putString("name", "小张"); 
editor.putInt("age", 11);
editor.commit();

取数据

SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE); 
String name = sp.getString("name", null); 
int age = sp.getInt("age", 0);

在上面这种情况,数据存储在意sq_demo命名的xml文件种,可以存储的数据类型:
在这里插入图片描述
场景描述:当用户登录了一款程序,退出后再次登录,需要重新输入密码
解决方案:当登陆成功后,将数据使用SharedPreferences api进行存储,代码如下:

public class LoginActivity extends AppCompatActivity {
    private EditText etUserName;
    private EditText etPassWord;
    private Button btnLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        //判断是否已登陆
        SharedPreferences sharedPreferences = getSharedPreferences("userInfo",MODE_PRIVATE);
        if(!sharedPreferences.getString("uname","").equals("")){
             Toast.makeText(LoginActivity.this,"已经登录成功,无需再次登录",Toast.LENGTH_SHORT).show();
        }

        etUserName = findViewById(R.id.etUserName);
        etPassWord = findViewById(R.id.etPassWord);
        btnLogin = findViewById(R.id.btnLogin);
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String userName = etUserName.getText().toString();
                String passWord = etPassWord.getText().toString();
                if(userName.equals("abc") && passWord.equals("123456")){
                    SharedPreferences preferences = getSharedPreferences("userInfo",MODE_PRIVATE);
                    SharedPreferences.Editor editor = preferences.edit();
                    editor.putString("uname",userName);
                    editor.putInt("msg",60);
                    editor.commit();
                    Toast.makeText(LoginActivity.this,"登陆成功,并保存登录信息",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(LoginActivity.this,"对不起,登录失败!",Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值