Android——SharedPreferences 存储(含源码下载)

Android——SharedPreferences 存储(含源码下载),第1张

概述Android系统提供了轻量级的数据存储方式——SharedPreferences存储。它屏蔽了对底层文件的 *** 作,通过为程序开发人员提供简单的编程接口,实现以最简单的方式对数据进行永久保存。这种方式主要对少量的数据进行保存,比如对应用程序的配置信息、手机应用的主题、游戏的玩家积分

AndroID 系统提供了轻量级的数据存储方式——SharedPreferences 存储。它屏蔽了对底层文件的 *** 作,通过为程序开发人员提供简单的编程接口,实现以最简单的方式对数据进行永久保存。这种方式主要对少量的数据进行保存,比如对应用程序的配置信息、手机应用的主题、游戏的玩家积分等进行保存。

如何使用SharedPreferences 存储数据?

一、获取SharedPreferences 对象,一般有两种方法
方法1:getSharedPreferences(String name, int mode)
name:共享文件的名称(不包括扩展名),该文件为 XML 格式。
mode:用于指定访问权限,它的参数值可以是 MODE_PRIVATE、MODE_MulTI_PROCESS,一般选用第一个即可。
方法2:getPreferences(int mode)
mode与方法1相同。

二、获得 SharedPreferences.Editor 对象,通过Editor 对象的方法进行写入。
获得Editor 对象:SharedPreferences.Editor editor=getSharedPreferences("myinfo",MODE_PRIVATE).edit();
写入数据(通过键值的方式写入):editor.putString("VALUE","hello");
提交当前数据:editor.commit();

三、获取SharedPreferences 的对象sharedPreferences,通过sharedPreferences进行读取数据 *** 作
获取sharedPreferences对象:SharedPreferences sharedPreferences = getSharedPreferences("myinfo",MODE_PRIVATE);
对数据进行读取:sharedPreferences.getString(“VALUE”,“myinfo”)

下面通过一个实例体验一下SharedPreferences存储。
本次通过一个简单的用户登录界面来展现,用SharedPreferences存储来保存账户和密码信息。


代码如下:
activity_main.xml

<?xml version="1.0" enCoding="utf-8"?><androIDx.constraintlayout.Widget.ConstraintLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    tools:context=".MainActivity">    <EditText        androID:ID="@+ID/et_user"        androID:layout_wIDth="0dp"        androID:layout_height="wrap_content"        androID:layout_marginStart="5dp"        androID:layout_marginleft="5dp"        androID:layout_marginEnd="5dp"        androID:layout_marginRight="5dp"        androID:layout_marginBottom="10dp"        androID:drawableRight="@drawable/icon_user"        androID:ems="10"        androID:hint="请输入账号"        androID:inputType="textPersonname"        androID:paddingleft="5dp"        androID:paddingRight="10dp"        androID:textSize="25sp"        app:layout_constraintBottom_totopOf="@+ID/et_password"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent" />    <EditText        androID:ID="@+ID/et_password"        androID:layout_wIDth="0dp"        androID:layout_height="wrap_content"        androID:layout_marginStart="5dp"        androID:layout_marginleft="5dp"        androID:layout_marginEnd="5dp"        androID:layout_marginRight="5dp"        androID:drawableRight="@drawable/icon_password"        androID:ems="10"        androID:hint="请输入密码"        androID:inputType="textPassword"        androID:paddingleft="5dp"        androID:paddingRight="10dp"        androID:textSize="25sp"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constrainttop_totopOf="parent" />    <button        androID:ID="@+ID/btn_confirm"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_margintop="30dp"        androID:text="保存并显示用户信息"        androID:textSize="14sp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constrainttop_toBottomOf="@+ID/et_password" />    <ImageVIEw        androID:ID="@+ID/imageVIEw2"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        app:layout_constraintBottom_totopOf="@+ID/et_user"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constrainttop_totopOf="parent"        app:srcCompat="@mipmap/ic_launcher_round" /></androIDx.constraintlayout.Widget.ConstraintLayout>

MainActivity.java

package com.example.mydemo;import androIDx.appcompat.app.AppCompatActivity;import androID.app.AlertDialog;import androID.app.Dialog;import androID.content.DialogInterface;import androID.content.SharedPreferences;import androID.os.Bundle;import androID.text.TextUtils;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.EditText;import androID.Widget.Toast;public class MainActivity extends AppCompatActivity {    public static final String USER = "user";    public static final String PASSWORD = "password";    public static final String MYINFO = "myinfo";    private EditText etUser;    private EditText etPassword;    private button btnConfirm;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        etUser = findVIEwByID(R.ID.et_user);        etPassword = findVIEwByID(R.ID.et_password);        btnConfirm = findVIEwByID(R.ID.btn_confirm);        btnConfirm.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {                //保存用户信息                savedInfo();                //通过对话框展示存储信息                showInfo();            }        });    }    private voID showInfo() {        SharedPreferences sharedPreferences = getSharedPreferences(MYINFO,MODE_PRIVATE);        //创建一个对话框        final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);        builder.setTitle("登录信息")                .setMessage("账户:"+sharedPreferences.getString(USER,MYINFO)+"\n"+                        "密码:"+sharedPreferences.getString(PASSWORD,MYINFO))                .setCancelable(false)                .setNegativebutton("退出", new DialogInterface.OnClickListener() {                    @OverrIDe                    public voID onClick(DialogInterface dialog, int which) {                        dialog.cancel();                    }                })                .create()                .show();    }    private voID savedInfo() {        if (TextUtils.isEmpty(etUser.getText())&&                TextUtils.isEmpty(etPassword.getText())) {            Toast.makeText(getApplicationContext(),"账户或密码不能为空!",Toast.LENGTH_SHORT)                    .show();        }        else {            SharedPreferences.Editor editor =                    getSharedPreferences(MYINFO,MODE_PRIVATE).edit();            editor.putString(USER,etUser.getText().toString());            editor.putString(PASSWORD,etPassword.getText().toString());            editor.commit();//提交当前数据        }    }}

链接:百度网盘下载 提取码:5mp7

点赞收藏分享文章举报

大鹏学Android发布了18 篇原创文章 · 获赞 5 · 访问量 8462私信 关注 总结

以上是内存溢出为你收集整理的Android——SharedPreferences 存储(含源码下载)全部内容,希望文章能够帮你解决Android——SharedPreferences 存储(含源码下载)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1065976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存