博客
关于我
Android的SharePreferences存储的案例(qq账号存储)
阅读量:114 次
发布时间:2019-02-26

本文共 4576 字,大约阅读时间需要 15 分钟。

使用SharedPreferences存储和读取数据

一、保存SharedPreferences数据

要在Android应用中使用SharedPreferences存储数据,首先需要获取SharedPreferences对象,然后通过Editor进行操作,最后提交修改。以下是详细步骤:

  • 获取SharedPreferences对象

    使用getSharedPreferences(String name, int mode)方法获取SharedPreferences对象。name是文件名,mode决定文件操作模式,常用MODE_PRIVATE(私有模式)。

  • 获取可编辑的Editor对象

    调用SharedPreferences.edit()方法获取可编辑的Editor对象,通过Editor对象对数据进行修改。

  • 存储数据

    根据数据类型调用相应的put方法,例如:

    • putString(String key, String value)存储String类型数据。
    • putInt(String key, int value)存储整数。
    • putBoolean(String key, boolean value)存储布尔值。
  • 提交修改

    最后调用commit()方法提交修改,确保数据保存到文件中。

  • 示例代码:

    SharedPreferences sp = getSharedPreferences("data", MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();
    editor.putString("username", "传智播客");
    editor.putInt("age", 8);
    editor.commit();

    二、读取SharedPreferences数据

    要读取SharedPreferences中的数据,需要调用相应的get方法:

  • 获取String数据

    使用getString(String key, String defaultValue)方法,若key不存在则返回默认值。

  • 获取整数数据

    使用getInt(String key, int defaultValue)方法。

  • 获取布尔值数据

    使用getBoolean(String key, boolean defaultValue)方法。

  • 示例代码:

    SharedPreferences sp = getSharedPreferences("data", MODE_PRIVATE);
    String username = sp.getString("username", "");
    int age = sp.getInt("age", 0);

    三、删除SharedPreferences数据

    要删除SharedPreferences中的数据,可以使用Editor对象的remove(String key)方法或clear()方法:

    • remove(String key):删除指定key的数据。
    • clear():删除所有数据。

    示例代码:

    SharedPreferences sp = getSharedPreferences("data", MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();
    editor.remove("username");
    editor.clear();
    editor.commit();

    四、案例说明

    程序功能:用户输入QQ账号和密码,点击登录按钮后,弹出提示信息。程序退出后重新启动时,QQ账号和密码仍然显示在EditText中。

    实现步骤

  • 布局文件(activity_main.xml)

    设计EditText和Button布局,确保用户输入账号和密码。

  • 工具类(SaveQQ.java)

    提供保存和读取数据的方法。

  • MainActivity逻辑

    在onCreate方法中初始化组件,设置OnClickListener监听按钮点击事件。
    在onClick方法中获取用户输入,判断是否为空,登录成功后保存数据并弹出提示。

  • 代码示例:

    public class SaveQQ {
    public static boolean saveUserInfo(Context context, String account, String password) {
    SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sp.edit();
    edit.putString("username", account);
    edit.putString("password", password);
    edit.commit();
    return true;
    }
    public static Map
    getUserInfo(Context context) {
    SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);
    String account = sp.getString("username", "");
    String password = sp.getString("password", "");
    Map
    userMap = new HashMap<>();
    userMap.put("account", account);
    userMap.put("password", password);
    return userMap;
    }
    }

    MainActivity代码:

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText etAccount;
    private EditText etPassword;
    private Button btnLogin;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    // 获取用户信息并显示在EditText中
    Map
    userInfo = SaveQQ.getUserInfo(this);
    if (userInfo != null) {
    etAccount.setText(userInfo.get("account"));
    etPassword.setText(userInfo.get("password"));
    }
    }
    private void initView() {
    etAccount = (EditText) findViewById(R.id.et_account);
    etPassword = (EditText) findViewById(R.id.et_password);
    btnLogin = (Button) findViewById(R.id.btn_login);
    btnLogin.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btn_login:
    String account = etAccount.getText().toString().trim();
    String password = etPassword.getText().toString();
    if (TextUtils.isEmpty(account)) {
    Toast.makeText(this, "请输入QQ账号", Toast.LENGTH_SHORT).show();
    return;
    }
    if (TextUtils.isEmpty(password)) {
    Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
    return;
    }
    Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
    boolean isSaveSuccess = SaveQQ.saveUserInfo(this, account, password);
    if (isSaveSuccess) {
    Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
    } else {
    Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();
    }
    break;
    }
    }
    }

    五、验证数据

    在开发工具(如Android Studio)中,检查设备文件夹中的share_prefs目录,找到对应的data.xml文件,确认数据是否正确保存。

    转载地址:http://pulk.baihongyu.com/

    你可能感兴趣的文章
    MariaDB的简单使用
    查看>>
    MaterialForm对tab页进行隐藏
    查看>>
    Member var and Static var.
    查看>>
    memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
    查看>>
    memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
    查看>>
    Memcached:Node.js 高性能缓存解决方案
    查看>>
    memcache、redis原理对比
    查看>>
    memset初始化高维数组为-1/0
    查看>>
    Metasploit CGI网关接口渗透测试实战
    查看>>
    Metasploit Web服务器渗透测试实战
    查看>>
    MFC模态对话框和非模态对话框
    查看>>
    Moment.js常见用法总结
    查看>>
    MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
    查看>>
    mxGraph改变图形大小重置overlay位置
    查看>>
    MongoDB可视化客户端管理工具之NoSQLbooster4mongo
    查看>>
    Mongodb学习总结(1)——常用NoSql数据库比较
    查看>>
    MongoDB学习笔记(8)--索引及优化索引
    查看>>
    mongodb定时备份数据库
    查看>>
    mppt算法详解-ChatGPT4o作答
    查看>>
    mpvue的使用(一)必要的开发环境
    查看>>